@@ -14,7 +14,6 @@ concurrency:
1414
1515env :
1616 FORCE_COLOR : 3
17- PIXI_VERSION : " v0.63.2"
1817
1918jobs :
2019 detect-ci-trigger :
4645
4746 steps :
4847 - uses : actions/checkout@v6
49- - uses : Parcels-code/pixi-lock/create-and-cache@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
48+ - uses : Parcels-code/pixi-lock/create-and-cache@a9aee67fa67426e6b0297fa5bef80600572be153
5049 id : pixi-lock
51- with :
52- pixi-version : ${{env.PIXI_VERSION}}
53- - uses : actions/upload-artifact@v6
50+ - uses : actions/upload-artifact@v7
5451 with :
5552 name : pixi-lock
5653 path : pixi.lock
7572 echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
7673
7774 - name : Restore cached pixi lockfile
78- uses : Parcels-code/pixi-lock/restore@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
75+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
7976 with :
8077 cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
8178 - uses : prefix-dev/setup-pixi@v0.9.4
@@ -113,7 +110,7 @@ jobs:
113110 with :
114111 fetch-depth : 0 # Fetch all history for all branches and tags.
115112 - name : Restore cached pixi lockfile
116- uses : Parcels-code/pixi-lock/restore@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
113+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
117114 with :
118115 cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
119116 - uses : prefix-dev/setup-pixi@v0.9.4
@@ -158,7 +155,7 @@ jobs:
158155 with :
159156 fetch-depth : 0 # Fetch all history for all branches and tags.
160157 - name : Restore cached pixi lockfile
161- uses : Parcels-code/pixi-lock/restore@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
158+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
162159 with :
163160 cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
164161 - uses : prefix-dev/setup-pixi@v0.9.4
@@ -188,6 +185,52 @@ jobs:
188185 name : codecov-umbrella
189186 fail_ci_if_error : false
190187
188+ stubtest :
189+ name : Stubtest
190+ runs-on : " ubuntu-latest"
191+ needs : [detect-ci-trigger, cache-pixi-lock]
192+ # Phase 1: Non-blocking (informational only)
193+ # Change to 'false' once stubtest is stable to make it required
194+ continue-on-error : true
195+ defaults :
196+ run :
197+ shell : bash -l {0}
198+ env :
199+ PIXI_ENV : test-py313-with-typing
200+
201+ steps :
202+ - uses : actions/checkout@v6
203+ with :
204+ fetch-depth : 0
205+
206+ - name : Restore cached pixi lockfile
207+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
208+ with :
209+ cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
210+ - uses : prefix-dev/setup-pixi@v0.9.4
211+ with :
212+ pixi-version : ${{ needs.cache-pixi-lock.outputs.pixi-version }}
213+ cache : true
214+ environments : ${{ env.PIXI_ENV }}
215+ cache-write : ${{ github.event_name == 'push' && github.ref_name == 'main' }}
216+
217+ - name : Version info
218+ run : |
219+ pixi run -e ${{env.PIXI_ENV}} -- python xarray/util/print_versions.py
220+
221+ - name : Install type stubs
222+ run : |
223+ pixi run -e ${{env.PIXI_ENV}} -- python -m mypy --install-types --non-interactive xarray/ || true
224+
225+ - name : Run stubtest (core modules)
226+ run : |
227+ pixi run -e ${{env.PIXI_ENV}} -- python -m mypy.stubtest \
228+ xarray.core.dataarray \
229+ xarray.core.dataset \
230+ xarray.core.variable \
231+ --mypy-config-file pyproject.toml \
232+ --allowlist _stubtest/allowlist.txt
233+
191234 pyright :
192235 name : Pyright | ${{ matrix.pixi-env }}"
193236 runs-on : " ubuntu-latest"
@@ -211,7 +254,7 @@ jobs:
211254 fetch-depth : 0 # Fetch all history for all branches and tags.
212255
213256 - name : Restore cached pixi lockfile
214- uses : Parcels-code/pixi-lock/restore@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
257+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
215258 with :
216259 cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
217260 - uses : prefix-dev/setup-pixi@v0.9.4
@@ -259,7 +302,7 @@ jobs:
259302 fetch-depth : 0 # Fetch all history for all branches and tags.
260303
261304 - name : Restore cached pixi lockfile
262- uses : Parcels-code/pixi-lock/restore@9a2866f8258b87a3c616d5ad7d51c6cd853df78b
305+ uses : Parcels-code/pixi-lock/restore@a9aee67fa67426e6b0297fa5bef80600572be153
263306 with :
264307 cache-key : ${{ needs.cache-pixi-lock.outputs.cache-key }}
265308
0 commit comments