From 9f17cfee0985bbd8de1ed19ca869bd14cc992293 Mon Sep 17 00:00:00 2001 From: Laetitia Getti Date: Tue, 18 Apr 2023 14:30:37 +0200 Subject: [PATCH] add gitlab_ci.yml --- .gitlab-ci.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..c4732e2 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,43 @@ +stages: + - build + - test + +before_script: + - export CACHE_PATH="/venvs/${CI_PROJECT_NAME}/$(date +week-%V-%Y)" + - if [[ "$CI_COMMIT_BRANCH" == *"--no-cache"* ]] ; then export CACHE_PATH="/venvs/$CI_COMMIT_SHORT_SHA"; fi + + +venv: + stage: build + image: registry.gitlab.com/hashbangfr/docker_archlinux:python + script: + - echo "Creating virtual env..." + - if [ ! -d $CACHE_PATH/venv ] ; then virtualenv --python=python3.9 $CACHE_PATH/venv ; fi + - $CACHE_PATH/venv/bin/pip install --upgrade pip + - echo "Virtual env created." + +tests: + stage: test + image: registry.gitlab.com/hashbangfr/docker_archlinux:python + variables: + DJANGO_SETTINGS_MODULE: "la_chariotte.settings" + DB_NAME: "postgres" + DB_USER: "postgres" + DB_PASSWORD: "mysecretpassword" + DB_HOST: "postgres" + DB_PORT: "5432" + POSTGRES_HOST_AUTH_METHOD: "trust" + services: + - postgres:13 + dependencies: + - venv + script: + - echo "Running tests..." + - source $CACHE_PATH/venv/bin/activate + - pip install -U -r requirements.txt + - pip install -U -r dev-requirements.txt + - pytest --create-db --cov --cov-report=xml + - if [ "$CI_COMMIT_REF_NAME" = 'main' ] ; then exit 0 ; fi + - if [ "$CI_COMMIT_REF_NAME" = 'develop' ] ; git fetch origin main ; then diff-cover coverage.xml --fail-under=90 && exit 0 ; fi + - git fetch origin develop ; diff-cover coverage.xml --fail-under=90 --compare-branch origin/develop + - echo "Tests done."