Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.02 KiB
image: docker.km3net.de/base/python:3

# 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"

cache:
  paths:
    - .cache/pip
  key: "$CI_COMMIT_REF_SLUG"

stages:
  - test
  - coverage
  - doc
  - release

.virtualenv_template: &virtualenv_definition |
  python -V
  python3 -m venv venv
  source venv/bin/activate
  pip install -U pip setuptools wheel
  hash -r
  pip freeze
  make install-dev
  pip freeze

.junit_template: &junit_definition
    artifacts:
      reports:
        junit: "reports/junit*.xml"

test-py3.6:
    image: docker.km3net.de/base/python:3.6
    stage: test
    script:
        - *virtualenv_definition
        - make test
    <<: *junit_definition

test-py3.7:
    image: docker.km3net.de/base/python:3.7
    stage: test
    script:
        - *virtualenv_definition
        - make test
    <<: *junit_definition

test-py3.8:
    image: docker.km3net.de/base/python:3.8
    stage: test
    script:
        - *virtualenv_definition
        - make test
    <<: *junit_definition

code-style:
    image: docker.km3net.de/base/python:3.7
    stage: test
    script:
        - *virtualenv_definition
        - make black-check
    allow_failure: true

coverage:
    image: docker.km3net.de/base/python:3.6
    stage: coverage
    script:
        - *virtualenv_definition