@@ -70,130 +70,6 @@ jobs:
7070 workspaces : " light-curve"
7171 - run : cargo clippy --manifest-path=light-curve/Cargo.toml --all-targets -- -D warnings
7272
73- build :
74- runs-on : ${{ matrix.os }}
75-
76- needs : [py_build_deps]
77-
78- strategy :
79- fail-fast : false
80- matrix :
81- os : ['macos-latest', 'ubuntu-latest']
82- abi3 : [true, false]
83- ceres : [false, 'source', 'system']
84- fftw : ['source', 'system', 'mkl']
85- gsl : [true, false]
86- exclude :
87- # We don't support MKL on macOS
88- - os : ' macos-latest'
89- fftw : ' mkl'
90- # Matrix is huge, let's make it more sparse
91- - ceres : ' system'
92- fftw : ' source'
93- - ceres : ' source'
94- fftw : ' system'
95- - ceres : ' source'
96- fftw : ' source'
97- gsl : false
98- - abi3 : true
99- ceres : ' system'
100- - abi3 : false
101- fftw : ' system'
102- - os : ' macos-latest'
103- ceres : ' system'
104- gsl : true
105- # We need ceres 2.2 and it is not in the packages yet
106- - os : ' ubuntu-latest'
107- ceres : ' system'
108- # We have very limited support for Windows, fftw-source is the only supported feature
109- include :
110- - os : ' windows-latest'
111- abi3 : false
112- ceres : false
113- fftw : ' source'
114- gsl : false
115- - os : ' windows-latest'
116- abi3 : true
117- ceres : false
118- fftw : ' source'
119- gsl : false
120-
121- defaults :
122- run :
123- working-directory : light-curve
124-
125- steps :
126- - uses : actions/checkout@v4
127- - name : Install ceres on macOS
128- if : ${{ matrix.ceres == 'system' && startsWith( matrix.os, 'macos' ) }}
129- run : brew install ceres-solver
130- - name : Install ceres on Linux
131- if : ${{ matrix.ceres == 'system' && startsWith( matrix.os, 'ubuntu' ) }}
132- run : |
133- sudo apt-get update
134- sudo apt-get install -y libunwind-dev
135- sudo apt-get install -y libceres-dev
136- - name : Install FFTW on macOS
137- if : ${{ matrix.fftw == 'system' && startsWith( matrix.os, 'macos' ) }}
138- run : brew install fftw
139- - name : Install FFTW on Linux
140- if : ${{ matrix.fftw == 'system' && startsWith( matrix.os, 'ubuntu' ) }}
141- run : |
142- sudo apt-get update
143- sudo apt-get install -y libfftw3-dev
144- - name : Install GSL on macOS
145- if : ${{ matrix.gsl && startsWith( matrix.os, 'macos' ) }}
146- run : brew install gsl
147- - name : Install GSL on Linux
148- if : ${{ matrix.gsl && startsWith( matrix.os, 'ubuntu' ) }}
149- run : |
150- sudo apt-get update
151- sudo apt-get install -y libgsl-dev
152- - name : Set up Python 3.8
153- uses : actions/setup-python@v5
154- with :
155- python-version : ' 3.8'
156- - name : Set up Python 3.9
157- if : ${{ ! matrix.abi3 }}
158- uses : actions/setup-python@v5
159- with :
160- python-version : ' 3.9'
161- - name : Set up Python 3.10
162- if : ${{ ! matrix.abi3 }}
163- uses : actions/setup-python@v5
164- with :
165- python-version : ' 3.10'
166- - name : Set up Python 3.11
167- if : ${{ ! matrix.abi3 }}
168- uses : actions/setup-python@v5
169- with :
170- python-version : ' 3.11'
171- - name : Set up Python 3.12
172- if : ${{ ! matrix.abi3 }}
173- uses : actions/setup-python@v5
174- with :
175- python-version : ' 3.12'
176- - name : Set up Rust toolchain
177- uses : dtolnay/rust-toolchain@stable
178- - name : Install build deps
179- run : python3 -mpip install "${{ needs.py_build_deps.outputs.output }}"
180- - uses : Swatinem/rust-cache@v2
181- with :
182- shared-key : " stable-${{ runner.os }}"
183- workspaces : " light-curve"
184- - name : Build wheels for abi3=${{ matrix.abi3 }} fftw=${{ matrix.fftw }} ceres=${{ matrix.ceres }} gsl=${{ matrix.gsl }}
185- run : |
186- maturin build --find-interpreter --manylinux=off --locked --no-default-features --features=fftw-${{ matrix.fftw }}${{ matrix.ceres == 'source' && ',ceres-source' || '' }}${{ matrix.ceres == 'system' && ',ceres-system' || '' }}${{ matrix.gsl && ',gsl' || '' }}${{ matrix.abi3 && ',abi3' || '' }},mimalloc
187- - name : Install abi3audit
188- if : ${{ matrix.abi3 }}
189- run : python3 -mpip install abi3audit
190- - name : Check wheels for ABI compatibility on Unix
191- if : ${{ matrix.abi3 && ! startsWith( matrix.os, 'windows' ) }}
192- run : abi3audit --strict target/wheels/*.whl
193- - name : Check wheels for ABI compatibility on Windows
194- if : ${{ matrix.abi3 && startsWith( matrix.os, 'windows' ) }}
195- run : Get-ChildItem -Path .\target\wheels -Filter *.whl | ForEach-Object { abi3audit --strict $_.FullName }
196-
19773 coverage :
19874 runs-on : ubuntu-latest
19975
0 commit comments