@@ -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