Tests #1055
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'] | |
rasterio-version: [''] | |
xarray-version: [''] | |
run-with-scipy: ['YES'] | |
gdal-version: ['3.8.2'] | |
include: | |
- python-version: '3.10' | |
rasterio-version: '' | |
xarray-version: '==2022.3.0' | |
run-with-scipy: 'YES' | |
gdal-version: '3.6.4' | |
- python-version: '3.10' | |
rasterio-version: '' | |
xarray-version: '' | |
run-with-scipy: 'NO' | |
gdal-version: '3.7.3' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update | |
run: | | |
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++ | |
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 }}' | |
[ "${{ matrix.run-with-scipy }}" = "YES" ] && export INSTALL_DEPS="${INSTALL_DEPS} scipy" | |
python -m pip install $INSTALL_DEPS | |
python -m pip install -e .[dev,doc] | |
- 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-latest, windows-latest] | |
python-version: ['3.10', '3.11', '3.12'] | |
rasterio-version: ['*'] | |
xarray-version: ['*'] | |
run-with-scipy: ['YES'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda | |
uses: s-weigand/setup-conda@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
conda-channels: conda-forge | |
- name: Install Env | |
shell: bash | |
run: | | |
conda config --prepend channels conda-forge | |
conda config --set channel_priority strict | |
export INSTALL_DEPS='python=${{ matrix.python-version }} rasterio=${{ matrix.rasterio-version }} xarray=${{ matrix.xarray-version }} pyproj netcdf4 dask pandoc' | |
[ "${{ matrix.run-with-scipy }}" = "YES" ] && export INSTALL_DEPS="${INSTALL_DEPS} scipy" | |
conda create -n test $INSTALL_DEPS | |
source activate test | |
python -m pip install -e .[dev,doc] | |
- name: Check and Log Environment | |
shell: bash | |
run: | | |
source activate test | |
python -V | |
python -c "import rioxarray; rioxarray.show_versions();" | |
conda info | |
- name: pylint | |
if: matrix.python-version == '3.10' | |
shell: bash | |
run: | | |
source activate test | |
pylint rioxarray/ | |
- name: mypy | |
shell: bash | |
if: matrix.python-version == '3.10' | |
run: | | |
source activate test | |
mypy rioxarray/ | |
- name: Test | |
shell: bash | |
run: | | |
source activate test | |
pytest --cov-report term-missing --cov=rioxarray --cov-report xml | |
- name: Test Build docs | |
shell: bash | |
if: contains(matrix.os, 'ubuntu') | |
run: | | |
source activate 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: s-weigand/setup-conda@v1 | |
with: | |
python-version: '3.10' | |
conda-channels: conda-forge | |
- name: Install Env | |
shell: bash | |
run: | | |
conda config --prepend channels conda-forge | |
conda config --set channel_priority strict | |
conda create -n test python=3.10 proj libgdal cython netcdf4 | |
source activate test | |
python -m pip install \ | |
--index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple \ | |
--no-deps --pre --upgrade \ | |
numpy \ | |
pandas \ | |
scipy; | |
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; | |
python -m pip install -e .[all] | |
- name: Check and Log Environment | |
shell: bash | |
run: | | |
source activate test | |
python -V | |
python -c "import rioxarray; rioxarray.show_versions();" | |
conda info | |
- name: Test | |
shell: bash | |
run: | | |
source activate test | |
pytest --cov-report term-missing --cov=rioxarray --cov-report xml |