-
Notifications
You must be signed in to change notification settings - Fork 18
162 lines (142 loc) · 6.52 KB
/
test.yml
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
name: Tests
on: [ push, pull_request ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.6
- name: Install dependencies
run: pip install flake8 pytest
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics --exclude ckan
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
test:
needs: lint
strategy:
matrix:
ckan-version: [ 2.9 ]
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 }}
volumes:
- SOLR_SCHEMA_FILE:../solr/schema.xml
postgres:
# image: ckan/ckan-postgres-dev:${{ matrix.ckan-version }}
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@v2
- 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: 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: Install dependency (common)
run: |
apk add --no-cache \
geos \
geos-dev \
proj-util \
proj-dev \
libxml2 \
libxslt \
gcc \
swig \
libxml2-dev \
libxslt-dev
- name: Install dependency (python3)
if: ${{ matrix.ckan-version == '2.9' }}
run: |
apk add --no-cache \
python3-dev
pip install -U pip
pip install -r dev-requirements.txt
- name: Install dependency - ckanext-harvest and its requirements...
run: |
git clone --branch master https://github.com/ckan/ckanext-harvest
cd ckanext-harvest
python3 setup.py develop
pip install -r pip-requirements.txt
# paster harvester initdb -c ../ckan/test-core.ini
- name: Install dependency - ckanext-dcat and its requirements...
run: |
git clone --branch master https://github.com/ckan/ckanext-dcat
cd ckanext-dcat
python3 setup.py develop
pip install -r requirements.txt
- name: Install dependency - ckanext-spatial and its requirements...
run: |
git clone --branch master https://github.com/ckan/ckanext-spatial
cd ckanext-spatial
python3 setup.py develop
# #TODO: Make compatable pyproj with py3 vesions
# sed -i '/pyproj==2.6.1/cpyproj' requirements.txt
pip install -r pip-requirements.txt
# paster spatial initdb -c ../ckan/test-core.ini
- name: Install dependency - ckanext-multilang and its requirements...
run: |
git clone --branch master https://github.com/geosolutions-it/ckanext-multilang
cd ckanext-multilang
python3 setup.py develop
# paster multilangdb initdb -c ../ckan/test-core.ini
# ckan -c test.ini multilang initdb
- name: Install dependency - ckanext-dcatapit and its requirements...
run: |
python3 setup.py develop
pip install -r dev-requirements.txt
# paster vocabulary initdb -c ckan/test-core.ini
- name: Install ckanext-dcatapit
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 extensions
run: |
crudini --set --verbose --list --list-sep=\ test.ini app:main ckan.plugins multilang_resources ckan_harvester multilang multilang_harvester dcat harvest spatial_metadata spatial_query spatial_harvest_metadata_api dcat_rdf_harvester dcatapit_pkg dcatapit_org dcatapit_config dcatapit_harvester dcatapit_csw_harvester dcatapit_theme_group_mapper dcatapit_ckan_harvester
crudini --set --verbose test.ini app:main ckanext.dcat.expose_subcatalogs False
crudini --set --verbose test.ini app:main ckanext.dcatapit.localized_resources True
crudini --set --verbose --list --list-sep=\ test.ini app:main ckanext.dcat.rdf.profiles euro_dcat_ap it_dcat_ap
ckan -c test.ini db init
ckan -c test.ini harvester initdb
ckan -c test.ini spatial initdb
# ckan -c test.ini dcat generate_static
ckan -c test.ini multilang initdb
- name: Setup extensions (dcatapit)
run: |
ckan -c test.ini dcatapit initdb
- name: Run tests
run: pytest --ckan-ini=test.ini --cov=ckanext.dcatapit --cov-report=xml --cov-append --disable-warnings ckanext/dcatapit/tests
- name: Upload coverage report to codecov
uses: codecov/codecov-action@v1
with:
file: ./coverage.xml