Tests #156
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: [main, 0.**] | |
pull_request: | |
branches: [main, 0.**] | |
schedule: | |
- cron: "0 0 * * *" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
Linting: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
- uses: pre-commit/action@v3.0.0 | |
Test: | |
needs: Linting | |
name: ${{ matrix.os }}, ${{ matrix.env }} | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
postgis: [false] | |
dev: [false] | |
env: | |
- ci/envs/39-minimal.yaml | |
- ci/envs/39-no-optional-deps.yaml | |
- ci/envs/39-pd15-defaults.yaml | |
- ci/envs/39-latest-defaults.yaml | |
- ci/envs/39-latest-conda-forge.yaml | |
- ci/envs/39-latest-conda-forge_no_fiona.yaml | |
- ci/envs/310-pd20-conda-forge.yaml | |
- ci/envs/310-latest-conda-forge.yaml | |
- ci/envs/311-latest-conda-forge.yaml | |
include: | |
- env: ci/envs/39-latest-conda-forge_no_fiona.yaml | |
os: macos-latest | |
postgis: false | |
dev: false | |
- env: ci/envs/39-latest-conda-forge.yaml | |
os: macos-latest | |
postgis: false | |
dev: false | |
- env: ci/envs/39-latest-conda-forge_no_fiona.yaml | |
os: windows-latest | |
postgis: false | |
dev: false | |
- env: ci/envs/39-latest-conda-forge.yaml | |
os: windows-latest | |
postgis: false | |
dev: false | |
- env: ci/envs/311-dev.yaml | |
os: ubuntu-latest | |
dev: true | |
pandas_copy_on_write: "1" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Conda environment with Micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: ${{ matrix.env }} | |
- name: Check and Log Environment | |
run: | | |
python -V | |
python -c "import geopandas; geopandas.show_versions();" | |
micromamba info | |
# save conda list to file and print out | |
# so that we can do the HAS_PYGEOS check without calling conda again | |
micromamba list 2>&1 | tee conda.txt | |
if ( cat conda.txt | grep -q pygeos ) | |
then | |
echo "Setting HAS_PYGEOS=1" | |
echo "HAS_PYGEOS=1" >> $GITHUB_ENV | |
else | |
echo "Setting HAS_PYGEOS=0" | |
echo "HAS_PYGEOS=0" >> $GITHUB_ENV | |
fi | |
- name: Test without PyGEOS | |
env: | |
USE_PYGEOS: 0 | |
PANDAS_COPY_ON_WRITE: ${{ matrix.pandas_copy_on_write || '0' }} | |
run: | | |
pytest -v -r a -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ | |
- name: Test with PyGEOS | |
if: env.HAS_PYGEOS == 1 | |
env: | |
USE_PYGEOS: 1 | |
run: | | |
pytest -v -r a -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ | |
- name: Test with PostGIS | |
if: (contains(matrix.env, '310-pd20-conda-forge.yaml') || contains(matrix.env, '311-latest-conda-forge.yaml')) | |
&& contains(matrix.os, 'ubuntu') | |
env: | |
PGUSER: postgres | |
PGPASSWORD: postgres | |
PGHOST: "127.0.0.1" | |
PGPORT: 5432 | |
run: | | |
conda install postgis -c conda-forge | |
sh ci/scripts/setup_postgres.sh | |
pytest -v -r a --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/io/tests/test_sql.py | tee /dev/stderr | if grep SKIPPED >/dev/null;then echo "TESTS SKIPPED, FAILING" && exit 1;fi | |
- name: Test docstrings | |
if: contains(matrix.env, '39-pd13-conda-forge.yaml') && contains(matrix.os, 'ubuntu') | |
env: | |
USE_PYGEOS: 1 | |
run: | | |
pytest -v --color=yes --doctest-only geopandas --ignore=geopandas/datasets | |
- uses: codecov/codecov-action@v3 |