Tests #1274
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: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
schedule: | |
- cron: '0 0 * * 0' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
env: | |
PIP_NO_BINARY: rasterio | |
DEBIAN_FRONTEND: noninteractive | |
jobs: | |
linting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
- uses: pre-commit/action@v3.0.1 | |
docker_tests: | |
needs: linting | |
runs-on: ubuntu-latest | |
name: Docker | GDAL=${{ matrix.gdal-version }} | python=${{ matrix.python-version }} | rasterio${{ matrix.rasterio-version }} | scipy ${{ matrix.run-with-scipy }} | |
container: ghcr.io/osgeo/gdal:ubuntu-full-${{ matrix.gdal-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11', '3.12', '3.13'] | |
rasterio-version: [''] | |
xarray-version: [''] | |
numpy-version: [''] | |
run-with-scipy: ['YES'] | |
gdal-version: ['3.10.0'] | |
include: | |
- python-version: '3.10' | |
rasterio-version: '==1.3.7' | |
xarray-version: '==2024.7.0' | |
numpy-version: '<2' | |
run-with-scipy: 'YES' | |
gdal-version: '3.8.2' | |
- python-version: '3.10' | |
rasterio-version: '' | |
xarray-version: '' | |
numpy-version: '' | |
run-with-scipy: 'NO' | |
gdal-version: '3.9.3' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update | |
run: | | |
rm /etc/apt/sources.list.d/apache-arrow.sources | |
apt-get update | |
apt-get -y install software-properties-common | |
add-apt-repository -y ppa:deadsnakes/ppa | |
apt-get update | |
- name: Set up Python ${{ matrix.python-version }} | |
run: | | |
apt-get install -y --no-install-recommends \ | |
python${{ matrix.python-version }} \ | |
python${{ matrix.python-version }}-dev \ | |
python${{ matrix.python-version }}-venv \ | |
python3-pip \ | |
g++ \ | |
git | |
chown -R $(whoami) /github/home/ | |
- name: Install dependencies | |
run: | | |
python${{ matrix.python-version }} -m venv testenv | |
. testenv/bin/activate | |
python -m pip install --upgrade pip | |
export INSTALL_DEPS='rasterio${{ matrix.rasterio-version }} xarray${{ matrix.xarray-version }} numpy${{ matrix.numpy-version }}' | |
[ "${{ matrix.run-with-scipy }}" = "YES" ] && export INSTALL_DEPS="${INSTALL_DEPS} scipy" | |
python -m pip install $INSTALL_DEPS | |
python -m pip install -e .[all] | |
python -m pip install -r requirements/test.txt | |
- name: run tests | |
run: | | |
. testenv/bin/activate | |
python -m pytest --cov-report term-missing --cov=rioxarray --cov-report xml | |
- uses: codecov/codecov-action@v4 | |
conda_test: | |
needs: linting | |
name: ${{ matrix.os }} | ${{ matrix.python-version }} | rasterio-${{ matrix.rasterio-version }} | scipy ${{ matrix.run-with-scipy }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, macos-13, windows-latest] | |
python-version: ['3.10', '3.11', '3.12', '3.13'] | |
rasterio-version: ['*'] | |
xarray-version: ['*'] | |
run-with-scipy: ['YES'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda | |
uses: mamba-org/setup-micromamba@v2 | |
with: | |
# https://github.com/mamba-org/setup-micromamba/issues/225 | |
micromamba-version: 1.5.10-0 | |
init-shell: bash | |
environment-name: test | |
create-args: >- | |
python=${{ matrix.python-version }} | |
rasterio=${{ matrix.rasterio-version }} | |
xarray=${{ matrix.xarray-version }} | |
libgdal-netcdf | |
libgdal-hdf4 | |
libgdal-hdf5 | |
pyproj | |
netcdf4 | |
dask | |
pandoc | |
- name: Install Env | |
shell: bash | |
run: | | |
[ "${{ matrix.run-with-scipy }}" = "YES" ] && micromamba install -n test scipy | |
micromamba run -n test python -m pip install -e .[all] | |
micromamba run -n test python -m pip install -r requirements/dev.txt | |
- name: Check and Log Environment | |
shell: bash | |
run: | | |
micromamba run -n test python -V | |
micromamba run -n test python -c "import rioxarray; rioxarray.show_versions();" | |
micromamba info | |
- name: pylint | |
if: matrix.python-version == '3.10' | |
shell: bash | |
run: | | |
micromamba run -n test pylint rioxarray/ | |
- name: mypy | |
shell: bash | |
if: matrix.python-version == '3.10' | |
run: | | |
micromamba run -n test mypy rioxarray/ | |
- name: Test | |
shell: bash | |
run: | | |
micromamba run -n test pytest --cov-report term-missing --cov=rioxarray --cov-report xml | |
- name: Test Build docs | |
shell: bash | |
if: contains(matrix.os, 'ubuntu') | |
run: | | |
micromamba run -n test sphinx-build -b html docs/ docs/_build/ | |
- uses: codecov/codecov-action@v4 | |
test_latest: | |
needs: linting | |
name: Test latest dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda | |
uses: mamba-org/setup-micromamba@v2 | |
with: | |
# https://github.com/mamba-org/setup-micromamba/issues/225 | |
micromamba-version: 1.5.10-0 | |
init-shell: bash | |
environment-name: test | |
create-args: >- | |
python=3.10 | |
proj | |
libgdal-core | |
libgdal-netcdf | |
libgdal-hdf4 | |
libgdal-hdf5 | |
cython | |
netcdf4 | |
- name: Install Env | |
shell: bash | |
run: | | |
micromamba run -n test python -m pip install \ | |
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ | |
--no-deps --pre --upgrade \ | |
numpy \ | |
pandas \ | |
scipy; | |
micromamba run -n test python -m pip install --upgrade \ | |
git+https://github.com/dask/dask.git@main \ | |
git+https://github.com/dask/distributed.git@main \ | |
git+https://github.com/mapbox/rasterio.git@main \ | |
git+https://github.com/pyproj4/pyproj.git@main \ | |
git+https://github.com/pydata/xarray.git@main; | |
micromamba run -n test python -m pip install -e .[all] | |
micromamba run -n test python -m pip install -r requirements/test.txt | |
- name: Check and Log Environment | |
shell: bash | |
run: | | |
micromamba run -n test python -V | |
micromamba run -n test python -c "import rioxarray; rioxarray.show_versions();" | |
micromamba info | |
- name: Test | |
shell: bash | |
run: | | |
micromamba run -n test pytest --cov-report term-missing --cov=rioxarray --cov-report xml |