|
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:
|
|
0 commit comments