@@ -70,130 +70,6 @@ jobs:
70
70
workspaces : " light-curve"
71
71
- run : cargo clippy --manifest-path=light-curve/Cargo.toml --all-targets -- -D warnings
72
72
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
-
197
73
coverage :
198
74
runs-on : ubuntu-latest
199
75
0 commit comments