1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
name: Tests
on:
push:
branches: [ main, maint-1.4 ]
paths:
- '.github/workflows/tests.yaml'
- 'requirements*.txt'
- 'setup.py'
- 'setup.cfg'
- 'MANIFEST.in'
- 'pyproject.toml'
- 'scripts/**'
- 'rasterio/**'
- 'tests/**'
pull_request:
branches: [ main, maint-1.4 ]
paths:
- '.github/workflows/tests.yaml'
- 'requirements*.txt'
- 'setup.py'
- 'setup.cfg'
- 'MANIFEST.in'
- 'pyproject.toml'
- 'scripts/**'
- 'rasterio/**'
- 'tests/**'
schedule:
- cron: '0 0 * * 0'
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: 3.12
- name: Code Linting
shell: bash
run: |
python -m pip install pre-commit
pre-commit run --show-diff-on-failure --all-files
docker_tests:
needs: linting
runs-on: ubuntu-latest
name: Docker | GDAL=${{ matrix.gdal-version }} | python=${{ matrix.python-version }}
container: ghcr.io/osgeo/gdal:ubuntu-small-${{ matrix.gdal-version }}
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
python-version: ['3.12', '3.13', '3.14']
gdal-version: ['3.12.1']
include:
- python-version: '3.14'
gdal-version: 'latest'
- python-version: '3.12'
gdal-version: '3.11.5'
- python-version: '3.12'
gdal-version: '3.10.3'
- python-version: '3.12'
gdal-version: '3.9.3'
- python-version: '3.12'
gdal-version: '3.8.5'
steps:
- uses: actions/checkout@v6
- 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++
- name: Install dependencies
run: |
python${{ matrix.python-version }} -m venv testenv
. testenv/bin/activate
python -m pip install --upgrade pip
python -m pip install --no-deps --force-reinstall -e .[test]
- name: run tests
run: |
. testenv/bin/activate
python -m pip install -r requirements-dev.txt
python -m pytest -v -m "not wheel" -rxXs --cov rasterio --cov-report term-missing
conda_test:
needs: linting
name: Conda | ${{ matrix.os }} | python=${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
# macos-15-intel is OSX Intel
# macos-14 is OSX Arm64
os: [macos-15-intel, macos-14, windows-latest]
python-version: ['3.12', '3.13', '3.14']
include:
- os: ubuntu-latest
python-version: '*'
steps:
- uses: actions/checkout@v6
- name: Setup Conda
uses: mamba-org/setup-micromamba@v2
with:
init-shell: bash
environment-name: test
create-args: >-
python=${{ matrix.python-version }}
libgdal
geos
cython=3
numpy
- name: Install Env
shell: bash -l {0}
run: |
micromamba run -n test python -m pip install -e . || micromamba run -n test python -m pip install -e .
micromamba run -n test python -m pip install -r requirements-dev.txt
- name: Check and Log Environment
shell: bash -l {0}
run: |
micromamba run -n test python -V
micromamba info
- name: Test with Coverage
shell: bash -l {0}
run: |
micromamba run python -m pytest -v -m "not wheel" -rxXs --cov rasterio --cov-report term-missing
|