name: Tests on: push: branches: [master] pull_request: branches: [master] schedule: - cron: "0 0 * * *" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: Linting: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - uses: pre-commit/action@v2.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/37-minimal.yaml - ci/envs/38-no-optional-deps.yaml - ci/envs/37-pd10.yaml - ci/envs/37-latest-defaults.yaml - ci/envs/37-latest-conda-forge.yaml - ci/envs/38-latest-conda-forge.yaml - ci/envs/39-latest-conda-forge.yaml include: - env: ci/envs/37-latest-conda-forge.yaml os: macos-latest postgis: false dev: false - env: ci/envs/38-latest-conda-forge.yaml os: macos-latest postgis: false dev: false - env: ci/envs/37-latest-conda-forge.yaml os: windows-latest postgis: false dev: false - env: ci/envs/38-latest-conda-forge.yaml os: windows-latest postgis: false dev: false - env: ci/envs/38-dev.yaml os: ubuntu-latest dev: true steps: - uses: actions/checkout@v2 - name: Setup Conda uses: conda-incubator/setup-miniconda@v2 with: environment-file: ${{ matrix.env }} - name: Check and Log Environment run: | python -V python -c "import geopandas; geopandas.show_versions();" conda info # save conda list to file and print out # so that we can do the HAS_PYGEOS check without calling conda again conda 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 run: | pytest -v -r s -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 s -n auto --color=yes --cov=geopandas --cov-append --cov-report term-missing --cov-report xml geopandas/ - name: Test with PostGIS if: contains(matrix.env, '38-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 s --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, '38-latest-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@v1