-
Notifications
You must be signed in to change notification settings - Fork 0
110 lines (90 loc) · 4.13 KB
/
tests.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
name: Run Backend Tests
on:
pull_request:
branches: [ "main" ]
paths-ignore:
- 'contrib/**'
- '.github/workflows/cypress.yml'
- '.github/workflows/docker-base-image.yml'
- '.github/workflows/docker-dev-image.yml'
- '.github/workflows/docker-nginx-image.yml'
- '.github/workflows/docker-postgresql-image.yml'
- '.github/workflows/docker-deployment-image.yml'
- '.github/workflows/deploy.yml'
- '.github/ISSUE_TEMPLATE'
- '.github/PULL_REQUEST_TEMPLATE.md'
- '.gitignore'
env:
CKAN_DATASTORE_POSTGRES_DB: datastore_test
CKAN_DATASTORE_POSTGRES_READ_USER: datastore_read
CKAN_DATASTORE_POSTGRES_READ_PWD: pass
CKAN_DATASTORE_POSTGRES_WRITE_USER: datastore_write
CKAN_DATASTORE_POSTGRES_WRITE_PWD: pass
CKAN_POSTGRES_DB: ckan_test
CKAN_POSTGRES_USER: ckan_default
CKAN_POSTGRES_PWD: pass
PGPASSWORD: ckan
PYTEST_COMMON_OPTIONS: -v --ckan-ini=test-core-circle-ci.ini --cov=ckan --cov=ckanext --junitxml=~/junit/result/junit.xml --test-group-count 6 --test-group-random-seed 1
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
test_group: [1, 2, 3, 4, 5, 6]
container: python:3-bullseye
services:
ckan-postgres:
image: postgres:10
env:
POSTGRES_USER: ckan
POSTGRES_PASSWORD: ckan
POSTGRES_DB: ckan
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
ckan-redis:
image: redis:3
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
# OS Dependencies
#apt update
apt-get update -y
apt-get install -y postgresql-client solr-jetty openjdk-8-jdk
# CkAN dependencies
pip install -r requirement-setuptools.txt
pip install -r requirements.txt
pip install -r dev-requirements.txt
python setup.py develop
pip check
- name: Init environment
run: |
# SOLR config
cp ckan/config/solr/schema.xml /etc/solr/conf/schema.xml
service jetty9 restart || true # erroring out but does seem to work
# Database Creation
psql --host=ckan-postgres --username=ckan --command="CREATE USER ${CKAN_POSTGRES_USER} WITH PASSWORD '${CKAN_POSTGRES_PWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;"
createdb --encoding=utf-8 --host=ckan-postgres --username=ckan --owner=${CKAN_POSTGRES_USER} ${CKAN_POSTGRES_DB}
psql --host=ckan-postgres --username=ckan --command="CREATE USER ${CKAN_DATASTORE_POSTGRES_READ_USER} WITH PASSWORD '${CKAN_DATASTORE_POSTGRES_READ_PWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;"
psql --host=ckan-postgres --username=ckan --command="CREATE USER ${CKAN_DATASTORE_POSTGRES_WRITE_USER} WITH PASSWORD '${CKAN_DATASTORE_POSTGRES_WRITE_PWD}' NOSUPERUSER NOCREATEDB NOCREATEROLE;"
createdb --encoding=utf-8 --host=ckan-postgres --username=ckan --owner=${CKAN_DATASTORE_POSTGRES_WRITE_USER} ${CKAN_DATASTORE_POSTGRES_DB}
# Database Initialization
ckan -c test-core-circle-ci.ini datastore set-permissions | psql --host=ckan-postgres --username=ckan
psql --host=ckan-postgres --username=ckan --dbname=${CKAN_DATASTORE_POSTGRES_DB} --command="CREATE extension tablefunc;"
ckan -c test-core-circle-ci.ini db init
# gunzip test_durations.gz
- name: Run tests
run: |
mkdir -p ~/junit/result
# python -m pytest ${PYTEST_COMMON_OPTIONS} --splits 4 --group ${{matrix.test_group}} --splitting-algorithm least_duration
python -m pytest ${PYTEST_COMMON_OPTIONS} --test-group ${{matrix.test_group}}
- name: Store backend test results
uses: actions/upload-artifact@v3
with:
name: store-test-results
path: ~/junit
- name: Run coveralls
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: coveralls --service=github