Skip to content

Tests

Tests #1274

Workflow file for this run

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