Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
97 changes: 0 additions & 97 deletions .github/workflows/deploy.yml

This file was deleted.

6 changes: 1 addition & 5 deletions .github/workflows/official-docker-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
# Fetch all history for all tags and branches
with:
fetch-depth: 0
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8

# Build
- name: Build docker images
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ name: Run Tests

on:
push:
branches-ignore: [ master ]
branches:
- master
pull_request:
branches:
- master

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -15,11 +18,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
uses: actions/checkout@v4

- name: Build docker images
run: |
Expand Down
107 changes: 93 additions & 14 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@

name: Test Binary Wheels
name: Binary Wheels

on: workflow_dispatch
on:
workflow_dispatch:
release:
types: [ published ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -18,10 +21,6 @@ jobs:
matrix:
include:
# Linux 64 bit manylinux
- os: ubuntu-latest
arch: x86_64
python: 38
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 39
Expand All @@ -34,6 +33,14 @@ jobs:
arch: x86_64
python: 311
builder: manylinux
- os: ubuntu-latest
arch: x86_64
python: 312
builder: manylinux
# - os: ubuntu-latest
# arch: x86_64
# python: 313
# builder: manylinux

# MacOS x86_64. The macos-13 runner is the last
# Intel-based runner version. At some point we'll
Expand All @@ -42,27 +49,80 @@ jobs:
arch: x86_64
python: 39
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 310
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 311
builder: macosx
deploy: 13.0
- os: macos-13
arch: x86_64
python: 312
builder: macosx
deploy: 13.0
# - os: macos-13
# arch: x86_64
# python: 313
# builder: macosx
# deploy: 13.0

# MacOS arm64
- os: macos-latest
arch: arm64
python: 310
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 311
builder: macosx
deploy: 14.0
- os: macos-latest
arch: arm64
python: 312
builder: macosx
deploy: 14.0
# - os: macos-latest
# arch: arm64
# python: 313
# builder: macosx
# deploy: 14.0
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.builder }}2014
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.builder }}2014
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_LINUX: "CC=gcc CXX=g++ CFLAGS='-O3 -fPIC' CXXFLAGS='-O3 -fPIC -std=c++14' BOOST_ROOT=/usr/local"
CIBW_ENVIRONMENT_MACOS: "MACOSX_DEPLOYMENT_TARGET=13.0 CC=gcc-14 CXX=g++-14 CFLAGS='-O3 -fPIC' CXXFLAGS='-O3 -fPIC -std=c++14' BOOST_ROOT=/usr/local FLAC_ROOT=/usr/local BLAS_LIBRARIES=/usr/local/lib/libscipy_openblas.dylib"
CIBW_ENVIRONMENT_LINUX: >
CC=gcc
CXX=g++
CFLAGS='-O3 -fPIC'
CXXFLAGS='-O3 -fPIC -std=c++14'
BOOST_ROOT=/usr/local
FLAC_ROOT=/usr/local
SO3G_BUILD_BLAS_LIBRARIES='-L/usr/local/lib -lopenblas -fopenmp -lm -lgfortran'
CIBW_ENVIRONMENT_MACOS: >
MACOSX_DEPLOYMENT_TARGET=${{ matrix.deploy }}
CC=gcc-14
CXX=g++-14
CFLAGS='-O3 -fPIC'
CXXFLAGS='-O3 -fPIC -std=c++14'
CPATH='/usr/local/include'
BOOST_ROOT=/usr/local
FLAC_ROOT=/usr/local
SO3G_BUILD_BLAS_LIBRARIES='/usr/local/lib/libopenblas.dylib'
CIBW_BEFORE_BUILD_LINUX: ./wheels/install_deps_linux.sh
CIBW_BEFORE_BUILD_MACOS: ./wheels/install_deps_osx.sh ${{ matrix.builder }}_${{ matrix.arch }}
CIBW_BEFORE_BUILD_MACOS: >
ln -s $(dirname $(readlink -f $(which python3)))/python3-config $(dirname $(which python3))/python3-config &&
./wheels/install_deps_osx.sh
CIBW_REPAIR_WHEEL_COMMAND_LINUX: ./wheels/repair_wheel_linux.sh {dest_dir} {wheel}
CIBW_REPAIR_WHEEL_COMMAND_MACOS: ./wheels/repair_wheel_macos.sh {dest_dir} {wheel} {delocate_archs}
CIBW_BEFORE_TEST: export OMP_NUM_THREADS=2
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_REQUIRES: pytest pixell
CIBW_TEST_COMMAND: >
python -c 'import so3g.smurf.reader; from spt3g import core' &&
python -m pytest {package}/test
Expand All @@ -73,17 +133,36 @@ jobs:
- uses: actions/setup-python@v5
name: Install Python
with:
python-version: '3.10'
python-version: '3.12'

- name: Install cibuildwheel
run: |
python -m pip install cibuildwheel==2.20.0
python -m pip install cibuildwheel==2.22.0

- name: Build wheel
run: |
python -m cibuildwheel --output-dir wheelhouse

- uses: actions/upload-artifact@v4
with:
name: wheels_cp${{ matrix.python }}-${{ matrix.builder }}
path: ./wheelhouse/so3g*cp${{ matrix.python }}-${{ matrix.builder }}*.whl
name: wheels_cp${{ matrix.python }}-${{ matrix.builder }}_${{ matrix.arch }}
path: ./wheelhouse/so3g*cp${{ matrix.python }}-${{ matrix.builder }}*${{ matrix.arch }}*.whl

upload_pypi:
needs: build_wheels
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
# unpacks all CIBW artifacts into dist/
pattern: wheels_*
path: dist
merge-multiple: true

- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
Loading