Merge pull request #312 from GSA/master-upstream #144
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: Legacy PostGIS Tests | |
on: [push, pull_request] | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.7' | |
- name: Install requirements | |
run: pip install flake8 pycodestyle | |
- name: Check syntax | |
run: flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics --exclude ckan | |
test: | |
needs: lint | |
strategy: | |
matrix: | |
include: | |
- ckan-version: 2.9 | |
harvester-version: 'master' | |
- ckan-version: 2.9-py2 | |
harvester-version: 'v1.4.2' | |
fail-fast: false | |
name: CKAN ${{ matrix.ckan-version }} | |
runs-on: ubuntu-latest | |
container: | |
image: openknowledge/ckan-dev:${{ matrix.ckan-version }} | |
services: | |
solr: | |
image: ckan/ckan-solr-dev:${{ matrix.ckan-version }} | |
postgres: | |
image: postgis/postgis:10-3.1 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: postgres | |
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 | |
redis: | |
image: redis:3 | |
env: | |
CKAN_SQLALCHEMY_URL: postgresql://ckan_default:pass@postgres/ckan_test | |
CKAN_DATASTORE_WRITE_URL: postgresql://datastore_write:pass@postgres/datastore_test | |
CKAN_DATASTORE_READ_URL: postgresql://datastore_read:pass@postgres/datastore_test | |
CKAN_SOLR_URL: http://solr:8983/solr/ckan | |
CKAN_REDIS_URL: redis://redis:6379/1 | |
PGPASSWORD: postgres | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Create Database | |
run: | | |
psql --host=postgres --username=postgres --command="CREATE USER ckan_default WITH PASSWORD 'pass' NOSUPERUSER NOCREATEDB NOCREATEROLE;" | |
createdb --encoding=utf-8 --host=postgres --username=postgres --owner=ckan_default ckan_test | |
psql --host=postgres --username=postgres --command="CREATE USER datastore_write WITH PASSWORD 'pass' NOSUPERUSER NOCREATEDB NOCREATEROLE;" | |
psql --host=postgres --username=postgres --command="CREATE USER datastore_read WITH PASSWORD 'pass' NOSUPERUSER NOCREATEDB NOCREATEROLE;" | |
createdb --encoding=utf-8 --host=postgres --username=postgres --owner=datastore_write datastore_test | |
- name: Install harvester | |
run: | | |
git clone --branch ${{ matrix.harvester-version }} https://github.com/ckan/ckanext-harvest | |
cd ckanext-harvest | |
pip install -r pip-requirements.txt | |
pip install -r dev-requirements.txt | |
pip install -e . | |
- name: Install dependencies (common) | |
run: | | |
apk add --no-cache \ | |
geos \ | |
geos-dev \ | |
proj-util \ | |
proj-dev \ | |
libxml2 \ | |
libxslt \ | |
gcc \ | |
libxml2-dev \ | |
libxslt-dev | |
- name: Patch to test pyproj | |
if: ${{ matrix.ckan-version == '2.9-py2' || matrix.ckan-version == '2.8' || matrix.ckan-version == '2.7' }} | |
run: | | |
pip install cython==0.29.36 | |
pip install --no-use-pep517 pyproj==2.2.2 | |
- name: Patch to test pyproj | |
if: ${{ matrix.ckan-version == '2.9' }} | |
run: | | |
pip install cython==0.29.36 | |
pip install --no-use-pep517 pyproj==2.6.1 | |
- name: Install dependencies (python2) | |
if: ${{ matrix.ckan-version == '2.9-py2' || matrix.ckan-version == '2.8' || matrix.ckan-version == '2.7' }} | |
run: | | |
apk add --no-cache \ | |
python2-dev | |
pip install -r requirements-py2.txt | |
pip install -r requirements-postgis-py2.txt | |
- name: Install dependencies (python3) | |
if: ${{ matrix.ckan-version != '2.9-py2' && matrix.ckan-version != '2.8' && matrix.ckan-version != '2.7' }} | |
run: | | |
apk add --no-cache \ | |
python3-dev | |
pip install -r requirements.txt | |
pip install -r requirements-postgis.txt | |
- name: Install requirements | |
run: | | |
pip install -e . | |
# Replace default path to CKAN core config file with the one on the container | |
sed -i -e 's/use = config:.*/use = config:\/srv\/app\/src\/ckan\/test-core.ini/' test.ini | |
- name: setup postgis | |
run: | | |
psql --host=postgres --username=postgres -d ckan_test --command="ALTER ROLE ckan_default WITH superuser;" | |
psql --host=postgres --username=postgres -d ckan_test --command="CREATE EXTENSION postgis;" | |
- name: Run tests | |
run: pytest --ckan-ini=test-postgis.ini --cov=ckanext.spatial --cov-report=xml --cov-append --disable-warnings ckanext/spatial/tests/postgis | |
- name: Upload coverage report to codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
file: ./coverage.xml |