diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e91f374ed1987963167500d9b2b102d9a78e9274..44187d332a6336d5e2e3e78273956118bac86132 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,24 +15,53 @@ # https://docs.gitlab.com/ee/development/cicd/templates.html # This specific template is located at: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml +# Python-specific template is located at +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml + +# Official language image. Look for the different tagged releases at: +# https://hub.docker.com/r/library/python/tags/ +image: python:latest + +# Change pip's cache directory to be inside the project directory since we can +# only cache local items. +variables: + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + +# https://pip.pypa.io/en/stable/topics/caching/ +cache: + paths: + - .cache/pip + +before_script: + - python --version ; pip --version # For debugging + - pip install virtualenv + - virtualenv venv + - source venv/bin/activate stages: # List of stages for jobs, and their order of execution - build - test - deploy + build-job: # This job runs in the build stage, which runs first. stage: build script: - echo "Compiling the code..." + - pip install . - echo "Compile complete." + + unit-test-job: # This job runs in the test stage. stage: test # It only starts when the job in the build stage completes successfully. script: - - echo "Running unit tests... This will take about 60 seconds." - - sleep 60 - - echo "Code coverage is 90%" + - echo "Running unit tests..." + - pytest --junitxml=report.xml + artifacts: + when: always + reports: + junit: report.xml lint-test-job: # This job also runs in the test stage. stage: test # It can run at the same time as unit-test-job (in parallel).