@@ -5,9 +5,11 @@ on: push
5
5
env :
6
6
PACKAGE_NAME : mkl_random
7
7
MODULE_NAME : mkl_random
8
+ VER_SCRIPT1 : " import json; f = open('ver.json', 'r'); j = json.load(f); f.close(); "
9
+ VER_SCRIPT2 : " d = j['dpctl'][0]; print('='.join((d[s] for s in ('version', 'build'))))"
8
10
9
11
jobs :
10
- build :
12
+ build_linux :
11
13
runs-on : ubuntu-latest
12
14
strategy :
13
15
matrix :
53
55
name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
54
56
path : /usr/share/miniconda/conda-bld/linux-64/${{ env.PACKAGE_NAME }}-*.tar.bz2
55
57
56
- test :
57
- needs : build
58
+ build_windows :
59
+ runs-on : windows-latest
60
+
61
+ strategy :
62
+ matrix :
63
+ python : ['3.9']
64
+ env :
65
+ conda-bld : C:\Miniconda\conda-bld\win-64\
66
+ steps :
67
+ - uses : actions/checkout@v2
68
+ with :
69
+ fetch-depth : 0
70
+ - uses : conda-incubator/setup-miniconda@v2
71
+ with :
72
+ auto-activate-base : true
73
+ activate-environment : " "
74
+
75
+ - name : Cache conda packages
76
+ uses : actions/cache@v3
77
+ env :
78
+ CACHE_NUMBER : 3 # Increase to reset cache
79
+ with :
80
+ path : /home/runner/conda_pkgs_dir
81
+ key :
82
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('**/meta.yaml') }}
83
+ restore-keys : |
84
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
85
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
86
+ - name : Install conda-build
87
+ run : conda install conda-build
88
+ - name : Build conda package
89
+ run : conda build --no-test --python ${{ matrix.python }} -c intel -c defaults --override-channels conda-recipe
90
+ - name : Upload artifact
91
+ uses : actions/upload-artifact@v2
92
+ with :
93
+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
94
+ path : ${{ env.conda-bld }}${{ env.PACKAGE_NAME }}-*.tar.bz2
95
+
96
+ test_linux :
97
+ needs : build_linux
58
98
runs-on : ${{ matrix.runner }}
59
99
60
100
strategy :
@@ -78,15 +118,19 @@ jobs:
78
118
- name : Create conda channel
79
119
run : |
80
120
mkdir -p $GITHUB_WORKSPACE/channel/linux-64
81
- mv ${PACKAGE_NAME}-*.tar.bz2 $GITHUB_WORKSPACE/channel/linux-64
82
- conda index $GITHUB_WORKSPACE/channel
121
+ conda index $GITHUB_WORKSPACE/channel || exit 1
122
+ mv ${PACKAGE_NAME}-*.tar.bz2 $GITHUB_WORKSPACE/channel/linux-64 || exit 1
123
+ conda index $GITHUB_WORKSPACE/channel || exit 1
83
124
# Test channel
84
- conda search $PACKAGE_NAME -c $GITHUB_WORKSPACE/channel --override-channels
85
-
125
+ conda search $PACKAGE_NAME -c $GITHUB_WORKSPACE/channel --override-channels --info --json > $GITHUB_WORKSPACE/ver.json
126
+ cat ver.json
86
127
- name : Collect dependencies
87
128
run : |
129
+ . $CONDA/etc/profile.d/conda.sh
88
130
CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}"
89
- conda install $PACKAGE_NAME python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile
131
+ export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")
132
+ conda create -n test_mkl_random $PACKAGE_NAME=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile
133
+ cat lockfile
90
134
- name : Set pkgs_dirs
91
135
run : |
92
136
echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc
@@ -104,11 +148,86 @@ jobs:
104
148
105
149
- name : Install mkl_random
106
150
run : |
151
+ . $CONDA/etc/profile.d/conda.sh
107
152
CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}"
108
- conda install $PACKAGE_NAME nose python=${{ matrix.python }} $CHANNELS
153
+ export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")
154
+ conda create -n test_mkl_random $PACKAGE_NAME=${PACKAGE_VERSION} nose python=${{ matrix.python }} $CHANNELS
109
155
# Test installed packages
110
156
conda list
111
157
- name : Run tests
112
158
run : |
113
- # python -m pytest --pyargs $MODULE_NAME
159
+ . $CONDA/etc/profile.d/conda.sh
160
+ conda activate test_mkl_random
114
161
nosetests -v mkl_random
162
+
163
+ test_windows :
164
+ needs : build_windows
165
+ runs-on : ${{ matrix.runner }}
166
+
167
+ strategy :
168
+ matrix :
169
+ python : ['3.9']
170
+ experimental : [false]
171
+ runner : [windows-latest]
172
+ continue-on-error : ${{ matrix.experimental }}
173
+ env :
174
+ CHANNELS : -c intel -c defaults --override-channels
175
+
176
+ steps :
177
+ - name : Download artifact
178
+ uses : actions/download-artifact@v2
179
+ with :
180
+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
181
+ - uses : conda-incubator/setup-miniconda@v2
182
+ with :
183
+ auto-activate-base : true
184
+ activate-environment : " "
185
+ - name : Install conda-build
186
+ # Needed to be able to run conda index
187
+ run : conda install conda-build
188
+ - name : Create conda channel
189
+ run : |
190
+ mkdir ${{ env.GITHUB_WORKSPACE }}\channel\win-64
191
+ move ${{ env.PACKAGE_NAME }}-*.tar.bz2 ${{ env.GITHUB_WORKSPACE }}\channel\win-64
192
+ conda index ${{ env.GITHUB_WORKSPACE }}/channel
193
+ # Test channel
194
+ conda search ${{ env.PACKAGE_NAME }} -c ${{ env.GITHUB_WORKSPACE }}/channel --override-channels --info --json > ${{ env.GITHUB_WORKSPACE }}\ver.json
195
+ more ${{ env.GITHUB_WORKSPACE }}\ver.json
196
+ - name : Collect dependencies
197
+ shell : cmd
198
+ run : |
199
+ @ECHO ON
200
+ copy /Y ${{ env.GITHUB_WORKSPACE }}\ver.json .
201
+ set "SCRIPT=%VER_SCRIPT1% %VER_SCRIPT2%"
202
+ FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
203
+ SET PACKAGE_VERSION=%%F
204
+ )
205
+ conda create -n test_mkl_random ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} -c ${{ env.GITHUB_WORKSPACE }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
206
+ more lockfile
207
+ - name : Cache conda packages
208
+ uses : actions/cache@v3
209
+ env :
210
+ CACHE_NUMBER : 3 # Increase to reset cache
211
+ with :
212
+ path : /home/runner/conda_pkgs_dir
213
+ key :
214
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
215
+ restore-keys : |
216
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
217
+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
218
+ - name : Install mkl_random
219
+ shell : cmd
220
+ run : |
221
+ @ECHO ON
222
+ copy /Y ${{ env.GITHUB_WORKSPACE }}\ver.json .
223
+ set "SCRIPT=%VER_SCRIPT1% %VER_SCRIPT2%"
224
+ FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
225
+ SET PACKAGE_VERSION=%%F
226
+ )
227
+ conda create -n test_mkl_random ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% nose python=${{ matrix.python }} -c ${{ env.GITHUB_WORKSPACE }}/channel ${{ env.CHANNELS }}
228
+ # Test installed packages
229
+ conda list
230
+ - name : Run tests
231
+ run : |
232
+ conda activate -n test_mkl_random
233
+ nosetests -v ${{ env.MODULE_NAME }}
0 commit comments