2020-05-08 12:47:03 +02:00
|
|
|
image: "python:3.7"
|
2018-08-05 18:34:05 +02:00
|
|
|
|
2016-11-13 11:29:28 +01:00
|
|
|
variables:
|
|
|
|
# GestioCOF settings
|
2017-09-12 00:14:52 +02:00
|
|
|
DJANGO_SETTINGS_MODULE: "cof.settings.prod"
|
|
|
|
DBHOST: "postgres"
|
2016-11-13 11:29:28 +01:00
|
|
|
REDIS_HOST: "redis"
|
2017-10-10 15:26:14 +02:00
|
|
|
REDIS_PASSWD: "dummy"
|
2016-11-13 11:29:28 +01:00
|
|
|
|
|
|
|
# Cached packages
|
2018-10-06 03:09:01 +02:00
|
|
|
PIP_CACHE_DIR: "$CI_PROJECT_DIR/vendor/pip"
|
2016-11-13 11:29:28 +01:00
|
|
|
|
2017-09-12 00:14:52 +02:00
|
|
|
# postgres service configuration
|
|
|
|
POSTGRES_PASSWORD: "4KZt3nGPLVeWSvtBZPSM3fSzXpzEU4"
|
|
|
|
POSTGRES_USER: "cof_gestion"
|
|
|
|
POSTGRES_DB: "cof_gestion"
|
2016-11-13 11:29:28 +01:00
|
|
|
|
2017-09-30 02:39:45 +02:00
|
|
|
# psql password authentication
|
|
|
|
PGPASSWORD: $POSTGRES_PASSWORD
|
|
|
|
|
2020-05-08 12:47:03 +02:00
|
|
|
test:
|
|
|
|
stage: test
|
2018-10-06 03:14:49 +02:00
|
|
|
before_script:
|
|
|
|
- mkdir -p vendor/{pip,apt}
|
|
|
|
- apt-get update -q && apt-get -o dir::cache::archives="vendor/apt" install -yqq postgresql-client
|
|
|
|
- sed -E 's/^REDIS_HOST.*/REDIS_HOST = "redis"/' cof/settings/secret_example.py > cof/settings/secret.py
|
|
|
|
- sed -i.bak -E 's;^REDIS_PASSWD = .*$;REDIS_PASSWD = "";' cof/settings/secret.py
|
|
|
|
# Remove the old test database if it has not been done yet
|
|
|
|
- psql --username=$POSTGRES_USER --host=$DBHOST -c "DROP DATABASE IF EXISTS test_$POSTGRES_DB"
|
2019-11-22 15:22:21 +01:00
|
|
|
- pip install --upgrade -r requirements-prod.txt coverage tblib
|
2018-10-06 03:14:49 +02:00
|
|
|
- python --version
|
2016-11-13 11:29:28 +01:00
|
|
|
script:
|
2018-10-28 14:57:32 +01:00
|
|
|
- coverage run manage.py test --parallel
|
2018-10-06 03:14:49 +02:00
|
|
|
after_script:
|
2018-10-01 13:47:52 +02:00
|
|
|
- coverage report
|
2018-10-21 12:13:03 +02:00
|
|
|
services:
|
2020-05-08 12:47:03 +02:00
|
|
|
- postgres:11.7
|
2018-10-21 12:13:03 +02:00
|
|
|
- redis:latest
|
2018-10-06 03:14:49 +02:00
|
|
|
cache:
|
|
|
|
key: test
|
|
|
|
paths:
|
|
|
|
- vendor/
|
|
|
|
# For GitLab CI to get coverage from build.
|
2018-10-06 15:45:32 +02:00
|
|
|
# Keep this disabled for now, as it may kill GitLab...
|
2018-10-05 23:16:06 +02:00
|
|
|
# coverage: '/TOTAL.*\s(\d+\.\d+)\%$/'
|
2018-10-06 03:14:49 +02:00
|
|
|
|
|
|
|
linters:
|
|
|
|
stage: test
|
|
|
|
before_script:
|
|
|
|
- mkdir -p vendor/pip
|
|
|
|
- pip install --upgrade black isort flake8
|
|
|
|
script:
|
|
|
|
- black --check .
|
2020-01-02 16:01:13 +01:00
|
|
|
- isort --recursive --check-only --diff bda bds clubs cof events gestioncof kfet petitscours provisioning shared
|
2018-10-06 03:14:49 +02:00
|
|
|
# Print errors only
|
2020-01-02 16:01:13 +01:00
|
|
|
- flake8 --exit-zero bda bds clubs cof events gestioncof kfet petitscours provisioning shared
|
2018-10-06 03:14:49 +02:00
|
|
|
cache:
|
|
|
|
key: linters
|
|
|
|
paths:
|
|
|
|
- vendor/
|
2019-10-06 20:34:04 +02:00
|
|
|
|
|
|
|
# Check whether there are some missing migrations.
|
|
|
|
migration_checks:
|
|
|
|
stage: test
|
|
|
|
before_script:
|
|
|
|
- mkdir -p vendor/{pip,apt}
|
|
|
|
- apt-get update -q && apt-get -o dir::cache::archives="vendor/apt" install -yqq postgresql-client
|
|
|
|
- cp cof/settings/secret_example.py cof/settings/secret.py
|
2019-11-22 15:22:21 +01:00
|
|
|
- pip install --upgrade -r requirements-prod.txt
|
2019-10-06 20:34:04 +02:00
|
|
|
- python --version
|
|
|
|
script: python manage.py makemigrations --dry-run --check
|
|
|
|
services:
|
|
|
|
# this should not be necessary…
|
2020-05-08 12:47:03 +02:00
|
|
|
- postgres:11.7
|
2019-10-06 20:34:04 +02:00
|
|
|
cache:
|
|
|
|
key: migration_checks
|
|
|
|
paths:
|
|
|
|
- vendor/
|