1
1
# Test PyGMT on Linux/macOS/Windows
2
2
#
3
- # This workflow runs regular PyGMT tests and uploads test coverage reports stored
4
- # in `.coverage.xml` to https://app.codecov.io/gh/GenericMappingTools/pygmt
5
- # via the [Codecov GitHub Action](https://github.com/codecov/codecov-action).
6
- # More codecov related configurations are stored in `.github/codecov.yml`.
7
- # If any tests fail, it also uploads the diff images as workflow artifacts.
3
+ # This workflow runs regular PyGMT tests and uploads test coverage reports stored in
4
+ # `.coverage.xml` to https://app.codecov.io/gh/GenericMappingTools/pygmt via the
5
+ # [Codecov GitHub Action](https://github.com/codecov/codecov-action). More codecov
6
+ # related configurations are stored in `.github/codecov.yml`. If any tests fail, it also
7
+ # uploads the diff images as workflow artifacts.
8
8
#
9
9
# It is run:
10
10
# 1. on every commit to the main branch
11
- # 2. on every commit to the pull request branches, unless the pull requests only
12
- # contain non-code changes.
11
+ # 2. on every commit to the pull request branches, unless the pull requests only contain
12
+ # non-code changes.
13
13
# 3. when a new release is published
14
14
#
15
15
# It is also scheduled to run daily on the main branch.
16
16
#
17
- # In draft pull request, only two jobs on Linux are triggered to save on
18
- # Continuous Integration resources:
17
+ # In draft pull request, only jobs on Linux are triggered to save on Continuous
18
+ # Integration resources:
19
19
#
20
- # - Minimum supported Python, NumPy, pandas, Xarray versions following [SPEC 0](https://scientific-python.org/specs/spec-0000/)
21
- # - Latest Python, NumPy versions + optional packages (e.g. GeoPandas)
20
+ # - Minimum supported Python + core packages (minimum supported versions)
21
+ # + optional packages (minimum supported versions if any)
22
+ # - Latest Python + core packages (latest versions) + optional packages
23
+ # - Last release before the latest Python + core packages
22
24
#
23
25
name : Tests
24
26
@@ -59,35 +61,32 @@ jobs:
59
61
# Is it a draft Pull Request (true or false)?
60
62
isDraft :
61
63
- ${{ github.event.pull_request.draft }}
62
- # Only run two jobs (Ubuntu + Python 3.10/3.12) for draft PRs
64
+ # Only run three jobs on Ubuntu for draft PRs
63
65
exclude :
64
66
- os : macos-latest
65
67
isDraft : true
66
68
- os : windows-latest
67
69
isDraft : true
68
- # Pair Python 3.10 with the minimum supported versions of NumPy, pandas, Xarray
69
- # and Python 3.12 with the latest versions of NumPy, pandas, Xarray
70
- # Only install optional packages on Python 3.12
71
70
include :
71
+ # Python 3.10 + core packages (minimum supported versions) + optional packages (minimum supported versions if any)
72
72
- python-version : ' 3.10'
73
73
numpy-version : ' 1.24'
74
74
pandas-version : ' =2.0'
75
75
xarray-version : ' =2023.04'
76
- optional-packages : ' '
76
+ optional-packages : ' contextily geopandas<1 ipython pyarrow rioxarray sphinx-gallery'
77
+ # Python 3.12 + core packages (latest versions) + optional packages
77
78
- python-version : ' 3.12'
78
79
numpy-version : ' 2.1'
79
80
pandas-version : ' '
80
81
xarray-version : ' '
81
- optional-packages : ' contextily geopandas ipython pyarrow rioxarray sphinx-gallery'
82
- # The job below is for testing GeoPandas v0.x on Ubuntu.
83
- # The python-version here can't be the versions in the matrix.python-version
84
- # defined above. Otherwise, other jobs will be overridden by this one.
82
+ optional-packages : ' contextily geopandas>=1.0 ipython pyarrow rioxarray sphinx-gallery'
83
+ # Python 3.11 + core packages (Linux only)
85
84
- os : ' ubuntu-latest'
86
- python-version : ' 3.11' # Can't be 3.10 or 3.12.
87
- numpy-version : ' 1.24 '
88
- pandas-version : ' =2.1 '
85
+ python-version : ' 3.11'
86
+ numpy-version : ' '
87
+ pandas-version : ' '
89
88
xarray-version : ' '
90
- optional-packages : ' geopandas<1 pyarrow '
89
+ optional-packages : ' '
91
90
92
91
timeout-minutes : 30
93
92
defaults :
@@ -143,7 +142,6 @@ jobs:
143
142
pytest-doctestplus
144
143
pytest-mpl
145
144
pytest-rerunfailures
146
- pytest-xdist
147
145
148
146
# Download cached remote files (artifacts) from GitHub
149
147
- name : Download remote data from GitHub
@@ -166,7 +164,7 @@ jobs:
166
164
167
165
# Run the regular tests
168
166
- name : Run tests
169
- run : make test PYTEST_EXTRA="-r P -n auto - -reruns 2"
167
+ run : make test PYTEST_EXTRA="-r P --reruns 2"
170
168
171
169
# Upload diff images on test failure
172
170
- name : Upload diff images if any test fails
@@ -178,10 +176,10 @@ jobs:
178
176
179
177
# Upload coverage to Codecov
180
178
- name : Upload coverage to Codecov
181
- uses : codecov/codecov-action@v4.6.0
179
+ uses : codecov/codecov-action@v5.0.3
182
180
if : success() || failure()
183
181
with :
184
182
use_oidc : true
185
- file : ./coverage.xml # optional
183
+ files : ./coverage.xml # optional
186
184
env_vars : OS,PYTHON,NUMPY
187
185
fail_ci_if_error : false
0 commit comments