CI: run on all three: ubuntu-latest, macos-latest, windows-latest #148
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
schedule: | |
- cron: '42 9 * * 2' # At 9:42 UTC on Tuesday | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
# pick lower and upper versions only | |
python-version: ["3.9", "3.12"] | |
env: | |
# Use a non-interactive matplotlib backend | |
MPLBACKEND: Agg | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: pyproject.toml | |
- name: Install Modflow executables | |
uses: modflowpy/install-modflow-action@v1 | |
- name: Install dependencies | |
run: | | |
python -m pip install pip --upgrade --disable-pip-version-check | |
pip install -e .[test] | |
- name: Run tests with required packages | |
run: pytest -v --cov | |
- name: Install PyQt5 for macOS | |
if: ${{ startsWith(matrix.os, 'macos') }} | |
run: pip install PyQt5 | |
- name: Run tests with optional packages | |
run: | | |
pip install -e .[extra] | |
pytest -v -n2 --cov --cov-append | |
- name: Run doctest | |
if: matrix.python-version == matrix.python-version[-1] # oldest | |
run: | | |
pytest -v swn --doctest-modules | |
- name: Run tests with older flopy and other packages | |
if: matrix.python-version == matrix.python-version[0] # newest | |
run: | | |
pip install "flopy<3.5" "pandas<2.0" "geopandas<1.0" "shapely<2.0" "numpy<2.0" | |
pytest -v -n2 --cov --cov-append | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} |