Skip to content

Major cleanup - moved all datasets (netCDF and csv) to examples/data_… #721

Major cleanup - moved all datasets (netCDF and csv) to examples/data_…

Major cleanup - moved all datasets (netCDF and csv) to examples/data_… #721

Workflow file for this run

name: Python
on:
push:
branches:
- main
tags:
- v*
pull_request:
jobs:
tests:
name: pytests (${{ matrix.os }} - ${{ matrix.python-version }}, Miniforge)
runs-on: ${{ matrix.os }}-latest
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: ["ubuntu", "macos", "windows"]
python-version: [ '3.12', '3.13', '3.14' ]
steps:
- uses: actions/checkout@v4
- uses: mamba-org/setup-micromamba@v2
with:
environment-file: environment.yml
cache-environment: true
post-cleanup: 'all'
init-shell: >-
bash
powershell
create-args: python=${{ matrix.python-version }}
- name: Cache cartopy maps
id: cache-cartopy
uses: actions/cache@v4
with:
path: ~/.local/share/cartopy
key: cartopy-maps-gshhg-2.3.7-ne50m
- name: Download cartopy shapefiles
if: steps.cache-cartopy.outputs.cache-hit != 'true'
run: |
mkdir -p ~/.local/share/cartopy/shapefiles/
cd ~/.local/share/cartopy/shapefiles/
curl -L -o gshhg-shp-2.3.7.zip https://github.com/GenericMappingTools/gshhg-gmt/releases/download/2.3.7/gshhg-shp-2.3.7.zip
unzip -o gshhg-shp-2.3.7.zip
mv GSHHS_shp gshhs
rm gshhg-shp-2.3.7.zip
python -c "import cartopy; list(map(cartopy.io.shapereader.gshhs, ('c', 'l', 'i', 'h', 'f')))"
python -c "import cartopy; cartopy.io.shapereader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries')"
python -c "import cartopy; cartopy.io.shapereader.natural_earth(resolution='50m', category='physical', name='coastline')"
- name: Run tests
run: |
pytest -vs --log-cli-level=debug ${{ matrix.os != 'macos' && '--mpl --mpl-results-path=mpl-results --mpl-generate-summary=html' || '' }}
- name: Upload mpl diff results
if: always()
uses: actions/upload-artifact@v4
with:
name: mpl-results-${{ matrix.os }}-py${{ matrix.python-version }}
path: mpl-results
if-no-files-found: ignore
- name: Build wheels
run: |
pip install build
python -m build
ls -l dist/*
- name: Upload wheels
if: matrix.python-version == '3.14' && matrix.os == 'ubuntu'
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}
path: dist
overwrite: true
release:
name: Release
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [ tests ]
steps:
- uses: actions/download-artifact@v4
with:
path: wheels
pattern: wheels-*
merge-multiple: true
- uses: conda-incubator/setup-miniconda@v2
with:
python-version: '3.14'
- name: Publish to PyPi
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
ls -l wheels/*
pip install --upgrade typing-extensions twine==6.0.1 pkginfo setuptools wheel build
pip list
twine upload --skip-existing wheels/*