@@ -20,12 +20,82 @@ jobs:
2020 Builds :
2121 uses : ./.github/workflows/packages.yml
2222
23- TestsPyPI :
23+ PyPITests :
2424 needs : Builds
25- uses : ./.github/workflows/tests-pypi.yml
26- with :
27- install-flags : --no-index --find-links ./wheelhouse/
28- download-name : wheels-${{ runner.name }}
25+ # name: PyPI Tests
26+ name : ${{ matrix.python-version }} ${{ matrix.dep-versions }} ${{ matrix.no-extras }}
27+ runs-on : ${{ matrix.platform }}
28+ env :
29+ INSTALL_FLAGS : ' '
30+ strategy :
31+ fail-fast : false
32+ matrix :
33+ platform : ["ubuntu-latest", "macos-latest", "macos-15-intel", "windows-latest", "windows-11-arm"]
34+ python-version : [3.11, 3.12, 3.13, 3.14]
35+ dep-versions : [Latest]
36+ no-extras : ['']
37+ include :
38+ - python-version : 3.11
39+ dep-versions : Minimum
40+ - python-version : 3.11
41+ dep-versions : Minimum
42+ no-extras : ' No Extras'
43+ - python-version : 3.14
44+ dep-versions : Latest
45+ no-extras : ' No Extras'
46+
47+ steps :
48+ - name : Checkout source
49+ uses : actions/checkout@v6
50+ with :
51+ fetch-depth : 150
52+ fetch-tags : true
53+ persist-credentials : false
54+
55+ - uses : actions/download-artifact@v8
56+
57+ - name : Set flag to install minimum dependencies
58+ if : ${{ matrix.dep-versions == 'Minimum' }}
59+ run : echo "INSTALL_FLAGS=${{ ${{ env.INSTALL_FLAGS }} --resolution=lowest-direct" >> $GITHUB_ENV
60+
61+ - name : Install from PyPI
62+ uses : ./.github/actions/install-pypi
63+ with :
64+ need-extras : ${{ matrix.no-extras != 'No Extras' }}
65+ type : ' test'
66+ python-version : ${{ matrix.python-version }}
67+ old-build : ${{ matrix.no-extras != 'No Extras' && matrix.dep-versions == 'Minimum' }}
68+ need-cartopy : ${{ matrix.no-extras != 'No Extras' }}
69+ install-flags : ${{ env.INSTALL_FLAGS }}
70+
71+ - name : Run tests
72+ uses : ./.github/actions/run-tests
73+ with :
74+ run-doctests : ${{ matrix.dep-versions == 'Latest' && matrix.no-extras != 'No Extras' }}
75+ key : pypi-${{ matrix.python-version }}-${{ matrix.dep-versions }}-${{ matrix.no-extras }}-${{ runner.os }}
76+
77+ codecov :
78+ needs : PyPITests
79+ name : CodeCov Upload
80+ runs-on : ubuntu-slim
81+ environment :
82+ name : CodeCov
83+ timeout-minutes : 2
84+ steps :
85+ - name : Checkout source
86+ uses : actions/checkout@v6
87+ with :
88+ persist-credentials : false
89+
90+ - name : Download coverage artifacts
91+ uses : actions/download-artifact@v7
92+
93+ - name : Upload coverage
94+ uses : codecov/codecov-action@v5
95+ with :
96+ name : PyPI
97+ fail_ci_if_error : true
98+ token : ${{ secrets.CODECOV_TOKEN }}
2999
30100 # TestsSDist:
31101
0 commit comments