Skip to content
Open
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
61 changes: 55 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [rift_O4d, rift_O4d_junior]
branches: [rift_O4d, rift_O4d_junior, rift_O4d_gmm_gpu]
pull_request:
branches: [rift_O4d, rift_O4d_junior]
branches: [rift_O4d, rift_O4d_junior, rift_O4d_gmm_gpu]
workflow_dispatch:

concurrency:
Expand All @@ -17,7 +17,10 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12', '3.13']
# Smoke-test that the package resolves and installs across the supported
# Python range, including the legacy py3.9 lane (paired with the pinned
# numpy==1.24.4 used by the integrator gate below).
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down Expand Up @@ -60,11 +63,27 @@ jobs:
import-check:
needs: install
runs-on: ubuntu-latest
# Verify every declared module imports cleanly under both the pinned
# legacy lane (py3.9 + numpy 1.24.4) and the modern lane (py3.12 +
# numpy 2.x). Catches platform-portability regressions like the
# np.float128 import-time crash on numpy 2.x systems without an
# extended-precision long double.
strategy:
fail-fast: false
matrix:
include:
- lane: legacy
python-version: '3.9'
numpy-pin: 'numpy==1.24.4'
- lane: modern
python-version: '3.12'
numpy-pin: 'numpy>=2.0,<3.0'
name: import-check (${{ matrix.lane }} py${{ matrix.python-version }})
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: requirements.txt
- name: Enable symlink
Expand All @@ -73,8 +92,14 @@ jobs:
run: |
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt --break-system-packages
# Pin numpy AFTER requirements.txt so it overrides the unpinned
# 'numpy' line in requirements.txt without changing the file.
python -m pip install '${{ matrix.numpy-pin }}' --break-system-packages
python -m pip install coverage pytest --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Show resolved versions
run: |
python -c "import sys, numpy, scipy; print('python', sys.version); print('numpy', numpy.__version__); print('scipy', scipy.__version__)"
- name: Run import check
run: python .travis/test-all-mod.py

Expand Down Expand Up @@ -108,11 +133,29 @@ jobs:
test-run:
needs: install
runs-on: ubuntu-latest
# Integrator + posterior gate. We run this in two CI lanes:
# - legacy : py3.9 + numpy 1.24.4 -- the historically known-good
# configuration on Linux x86_64 where np.float128 is real.
# - modern : py3.12 + numpy 2.x -- the forward-looking target. Catches
# numpy 2.x removals (np.product, np.cumproduct, np.in1d,
# np.alltrue, np.float_) and scipy >= 1.16 mvnun removal.
# Both lanes must pass test-integrate.sh's GMM/AC/AV consistency check.
strategy:
fail-fast: false
matrix:
include:
- lane: legacy
python-version: '3.9'
numpy-pin: 'numpy==1.24.4'
- lane: modern
python-version: '3.12'
numpy-pin: 'numpy>=2.0,<3.0'
name: test-run (${{ matrix.lane }} py${{ matrix.python-version }})
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: requirements.txt
- name: Enable symlink
Expand All @@ -121,8 +164,14 @@ jobs:
run: |
python -m pip install --upgrade pip --break-system-packages
python -m pip install -r requirements.txt --break-system-packages
# Pin numpy AFTER requirements.txt so it overrides the unpinned
# 'numpy' line in requirements.txt without changing the file.
python -m pip install '${{ matrix.numpy-pin }}' --break-system-packages
python -m pip install coverage pytest pytest-cov --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Show resolved versions
run: |
python -c "import sys, numpy, scipy; print('python', sys.version); print('numpy', numpy.__version__); print('scipy', scipy.__version__)"
- name: Run test scripts
run: |
. .travis/test-coord.sh
Expand All @@ -135,7 +184,7 @@ jobs:
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-logs
name: test-logs-${{ matrix.lane }}-py${{ matrix.python-version }}
path: |
**/*.log
**/test-results/*.xml
Expand Down
Loading
Loading