@@ -115,3 +115,137 @@ jobs:
115
115
source $CONDA/etc/profile.d/conda.sh
116
116
conda activate test_mkl_fft
117
117
pytest -v --pyargs $MODULE_NAME
118
+
119
+ build_windows :
120
+ runs-on : windows-latest
121
+
122
+ strategy :
123
+ matrix :
124
+ python : ['3.10']
125
+ env :
126
+ conda-bld : C:\Miniconda\conda-bld\win-64\
127
+ steps :
128
+ - uses : actions/checkout@v3
129
+ with :
130
+ fetch-depth : 0
131
+ - uses : conda-incubator/setup-miniconda@v2
132
+ with :
133
+ auto-activate-base : true
134
+ conda-build-version : " *"
135
+ activate-environment : true
136
+ python-version : ${{ matrix.python }}
137
+
138
+ - name : Cache conda packages
139
+ uses : actions/cache@v3
140
+ env :
141
+ CACHE_NUMBER : 3 # Increase to reset cache
142
+ with :
143
+ path : /home/runner/conda_pkgs_dir
144
+ key :
145
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('**/meta.yaml') }}
146
+ restore-keys : |
147
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
148
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
149
+ - name : Build conda package
150
+ run : conda build --no-test --python ${{ matrix.python }} -c intel -c conda-forge --override-channels conda-recipe
151
+ - name : Upload artifact
152
+ uses : actions/upload-artifact@v3
153
+ with :
154
+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
155
+ path : ${{ env.conda-bld }}${{ env.PACKAGE_NAME }}-*.tar.bz2
156
+
157
+ test_windows :
158
+ needs : build_windows
159
+ runs-on : ${{ matrix.runner }}
160
+ defaults :
161
+ run :
162
+ shell : cmd /C CALL {0}
163
+ strategy :
164
+ matrix :
165
+ python : ['3.10']
166
+ experimental : [false]
167
+ runner : [windows-latest]
168
+ continue-on-error : ${{ matrix.experimental }}
169
+ env :
170
+ workdir : ' ${{ github.workspace }}'
171
+ CHANNELS : -c intel -c conda-forge --override-channels
172
+
173
+ steps :
174
+ - name : Download artifact
175
+ uses : actions/download-artifact@v3
176
+ with :
177
+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
178
+ - uses : conda-incubator/setup-miniconda@v2
179
+ with :
180
+ auto-update-conda : true
181
+ conda-build-version : ' *'
182
+ miniconda-version : ' latest'
183
+ activate-environment : mkl_fft_test
184
+ python-version : ${{ matrix.python }}
185
+ - name : Create conda channel with the artifact bit
186
+ shell : cmd /C CALL {0}
187
+ run : |
188
+ echo ${{ env.workdir }}
189
+ mkdir ${{ env.workdir }}\channel\win-64
190
+ move ${{ env.PACKAGE_NAME }}-*.tar.bz2 ${{ env.workdir }}\channel\win-64
191
+ dir ${{ env.workdir }}\channel\win-64
192
+ - name : Index the channel
193
+ shell : cmd /C CALL {0}
194
+ run : conda index ${{ env.workdir }}\channel
195
+
196
+ - name : Dump mkl_fft version info from created channel into ver.json
197
+ shell : cmd /C CALL {0}
198
+ run : |
199
+ conda search ${{ env.PACKAGE_NAME }} -c ${{ env.workdir }}/channel --override-channels --info --json > ${{ env.workdir }}\ver.json
200
+ - name : Output content of produced ver.json
201
+ shell : pwsh
202
+ run : Get-Content -Path ${{ env.workdir }}\ver.json
203
+ - name : Collect dependencies
204
+ shell : cmd /C CALL {0}
205
+ run : |
206
+ IF NOT EXIST ver.json (
207
+ copy /Y ${{ env.workdir }}\ver.json .
208
+ )
209
+ SET "SCRIPT=%VER_SCRIPT1% %VER_SCRIPT2%"
210
+ FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
211
+ SET PACKAGE_VERSION=%%F
212
+ )
213
+ conda install -n mkl_fft_test ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
214
+ - name : Display lockfile content
215
+ shell : pwsh
216
+ run : Get-Content -Path .\lockfile
217
+ - name : Cache conda packages
218
+ uses : actions/cache@v3
219
+ env :
220
+ CACHE_NUMBER : 0 # Increase to reset cache
221
+ with :
222
+ path : /home/runner/conda_pkgs_dir
223
+ key :
224
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
225
+ restore-keys : |
226
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
227
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
228
+ - name : Install mkl_fft
229
+ shell : cmd /C CALL {0}
230
+ run : |
231
+ @ECHO ON
232
+ IF NOT EXIST ver.json (
233
+ copy /Y ${{ env.workdir }}\ver.json .
234
+ )
235
+ set "SCRIPT=%VER_SCRIPT1% %VER_SCRIPT2%"
236
+ FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
237
+ SET PACKAGE_VERSION=%%F
238
+ )
239
+ SET "TEST_DEPENDENCIES=pytest pytest-cov"
240
+ conda install -n mkl_fft_test ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
241
+ - name : Report content of test environment
242
+ shell : cmd /C CALL {0}
243
+ run : |
244
+ echo "Value of CONDA enviroment variable was: " %CONDA%
245
+ echo "Value of CONDA_PREFIX enviroment variable was: " %CONDA_PREFIX%
246
+ conda info && conda list -n mkl_fft_test
247
+ - name : Run tests
248
+ shell : cmd /C CALL {0}
249
+ run : >-
250
+ conda activate mkl_fft_test && python -m pytest -v -s --pyargs ${{ env.MODULE_NAME }}
251
+
0 commit comments