3232 numpy : " 2.3"
3333 - python : " 3.14"
3434 numpy : " 2.3"
35+ python_spec : " 3.14.* *_cp314"
36+ python_tag : " 3.14"
37+ - python : " 3.14"
38+ numpy : " 2.3"
39+ python_spec : " 3.14.* *_cp314t"
40+ python_tag : " 3.14t"
3541 steps :
3642 - name : Cancel Previous Runs
3743 uses : styfle/cancel-workflow-action@d07a454dad7609a92316b57b23c9ccfd4f59af66 # 0.13.1
5258 with :
5359 path : ~/.conda/pkgs
5460 key :
55- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('**/meta.yaml') }}
61+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-${{hashFiles('**/meta.yaml') }}
5662 restore-keys : |
57- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
63+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-
5864 ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
5965
6066 - name : Add conda to system path
7884 - name : Build conda package
7985 run : |
8086 CHANNELS=(-c "conda-forge" --override-channels)
81- VERSIONS=(--python "${{ matrix.python }}" --numpy "${{ matrix.numpy }}")
87+ VERSIONS=(--python "${{ matrix.python_spec || matrix. python }}" --numpy "${{ matrix.numpy }}")
8288 TEST=(--no-test)
8389 echo "CONDA_BLD=${CONDA}/conda-bld/linux-64" >> "$GITHUB_ENV"
8490
9197 - name : Upload artifact
9298 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
9399 with :
94- name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
100+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_tag || matrix. python }}
95101 path : ${{ env.CONDA_BLD }}/${{ env.PACKAGE_NAME }}-*.conda
96102
97103 test_linux :
@@ -100,10 +106,23 @@ jobs:
100106
101107 strategy :
102108 matrix :
103- python : ["3.10", "3.11", "3.12", "3.13", "3.14" ]
109+ python : ["3.10", "3.11", "3.12", "3.13"]
104110 numpy : ['numpy">=2"']
105111 experimental : [false]
106112 runner : [ubuntu-latest]
113+ include :
114+ - python : " 3.14"
115+ python_spec : " 3.14.* *_cp314"
116+ python_tag : " 3.14"
117+ numpy : ' numpy">=2"'
118+ experimental : false
119+ runner : ubuntu-latest
120+ - python : " 3.14"
121+ python_spec : " 3.14.* *_cp314t"
122+ python_tag : " 3.14t"
123+ numpy : ' numpy">=2"'
124+ experimental : false
125+ runner : ubuntu-latest
107126 continue-on-error : ${{ matrix.experimental }}
108127 env :
109128 CHANNELS : -c conda-forge --override-channels
@@ -112,7 +131,7 @@ jobs:
112131 - name : Download artifact
113132 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
114133 with :
115- name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
134+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_tag || matrix. python }}
116135 - name : Update conda
117136 run : |
118137 conda update -n base --all
@@ -142,7 +161,7 @@ jobs:
142161 run : |
143162 CHANNELS=(-c "$GITHUB_WORKSPACE/channel" -c "conda-forge" --override-channels)
144163 PACKAGE_VERSION="$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")"
145- conda create -n "${{ env.TEST_ENV_NAME }}" "${PACKAGE_NAME}=${PACKAGE_VERSION}" "python=${{ matrix.python }}" ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile
164+ conda create -n "${{ env.TEST_ENV_NAME }}" "${PACKAGE_NAME}=${PACKAGE_VERSION}" "python=${{ matrix.python_spec || matrix. python }}" ${{ matrix.numpy }} "${CHANNELS[@]}" --only-deps --dry-run > lockfile
146165 - name : Display lockfile
147166 run : cat lockfile
148167
@@ -157,16 +176,16 @@ jobs:
157176 with :
158177 path : ~/.conda/pkgs
159178 key :
160- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
179+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-${{hashFiles('lockfile') }}
161180 restore-keys : |
162- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
181+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-
163182 ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
164183
165184 - name : Install mkl_umath
166185 run : |
167186 CHANNELS=(-c "$GITHUB_WORKSPACE/channel" -c "conda-forge" --override-channels)
168187 PACKAGE_VERSION="$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")"
169- conda create -n "${{ env.TEST_ENV_NAME }}" "python=${{ matrix.python }}" ${{ matrix.numpy }} "$PACKAGE_NAME=${PACKAGE_VERSION}" pytest "${CHANNELS[@]}"
188+ conda create -n "${{ env.TEST_ENV_NAME }}" "python=${{ matrix.python_spec || matrix. python }}" ${{ matrix.numpy }} "$PACKAGE_NAME=${PACKAGE_VERSION}" pytest "${CHANNELS[@]}"
170189 # Test installed packages
171190 conda list -n "${{ env.TEST_ENV_NAME }}"
172191
@@ -198,6 +217,12 @@ jobs:
198217 numpy : " 2.3"
199218 - python : " 3.14"
200219 numpy : " 2.3"
220+ python_spec : " 3.14.* *_cp314"
221+ python_tag : " 3.14"
222+ - python : " 3.14"
223+ numpy : " 2.3"
224+ python_spec : " 3.14.* *_cp314t"
225+ python_tag : " 3.14t"
201226 env :
202227 conda-bld : C:\Miniconda\conda-bld\win-64\
203228 steps :
@@ -225,9 +250,9 @@ jobs:
225250 with :
226251 path : /home/runner/conda_pkgs_dir
227252 key :
228- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('**/meta.yaml') }}
253+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-${{hashFiles('**/meta.yaml') }}
229254 restore-keys : |
230- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
255+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-
231256 ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
232257
233258 - name : Store conda paths as envs
@@ -244,12 +269,12 @@ jobs:
244269 - name : Build conda package
245270 run : |
246271 conda activate
247- conda build --no-test --python ${{ matrix.python }} --numpy ${{ matrix.numpy }} -c conda-forge --override-channels conda-recipe-cf
272+ conda build --no-test --python " ${{ matrix.python_spec || matrix. python }}" --numpy ${{ matrix.numpy }} -c conda-forge --override-channels conda-recipe-cf
248273
249274 - name : Upload artifact
250275 uses : actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
251276 with :
252- name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
277+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_tag || matrix. python }}
253278 path : ${{ env.CONDA_BLD }}${{ env.PACKAGE_NAME }}-*.conda
254279
255280 test_windows :
@@ -260,10 +285,23 @@ jobs:
260285 shell : cmd /C CALL {0}
261286 strategy :
262287 matrix :
263- python : ["3.10", "3.11", "3.12", "3.13", "3.14" ]
288+ python : ["3.10", "3.11", "3.12", "3.13"]
264289 numpy : ['numpy">=2"']
265290 experimental : [false]
266291 runner : [windows-latest]
292+ include :
293+ - python : " 3.14"
294+ python_spec : " 3.14.* *_cp314"
295+ python_tag : " 3.14"
296+ numpy : ' numpy">=2"'
297+ experimental : false
298+ runner : windows-latest
299+ - python : " 3.14"
300+ python_spec : " 3.14.* *_cp314t"
301+ python_tag : " 3.14t"
302+ numpy : ' numpy">=2"'
303+ experimental : false
304+ runner : windows-latest
267305 continue-on-error : ${{ matrix.experimental }}
268306 env :
269307 workdir : ' ${{ github.workspace }}'
@@ -273,7 +311,7 @@ jobs:
273311 - name : Download artifact
274312 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
275313 with :
276- name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
314+ name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python_tag || matrix. python }}
277315
278316 - uses : conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
279317 with :
@@ -339,7 +377,7 @@ jobs:
339377 FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "%SCRIPT%"`) DO (
340378 SET PACKAGE_VERSION=%%F
341379 )
342- conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
380+ conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% " python=${{ matrix.python_spec || matrix. python }}" ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }} --only-deps --dry-run > lockfile
343381
344382 - name : Display lockfile content
345383 shell : pwsh
@@ -352,9 +390,9 @@ jobs:
352390 with :
353391 path : /home/runner/conda_pkgs_dir
354392 key :
355- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
393+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-${{hashFiles('lockfile') }}
356394 restore-keys : |
357- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
395+ ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python_tag || matrix. python }}-
358396 ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
359397
360398 - name : Install mkl_umath
@@ -369,7 +407,7 @@ jobs:
369407 SET PACKAGE_VERSION=%%F
370408 )
371409 SET "TEST_DEPENDENCIES=pytest pytest-cov"
372- conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% python=${{ matrix.python }} ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
410+ conda install -n ${{ env.TEST_ENV_NAME }} ${{ env.PACKAGE_NAME }}=%PACKAGE_VERSION% %TEST_DEPENDENCIES% " python=${{ matrix.python_spec || matrix. python }}" ${{ matrix.numpy }} -c ${{ env.workdir }}/channel ${{ env.CHANNELS }}
373411
374412 - name : Report content of test environment
375413 shell : cmd /C CALL {0}
0 commit comments