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

variables:
    GIT_SUBMODULE_STRATEGY: recursive

    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
    DOCKER_HOST: tcp://docker:2375
    DOCKER_DRIVER: overlay2
    CONTAINER_TEST_IMAGE: docker.km3net.de/simulation/km3buu:$CI_COMMIT_REF_SLUG
    CONTAINER_RELEASE_IMAGE: docker.km3net.de/simulation/km3buu:$CI_COMMIT_TAG
    CONTAINER_LATEST_IMAGE: docker.km3net.de/simulation/km3buu:latest
    SINGULARITY_RELEASE_IMAGE: km3buu_${CI_COMMIT_TAG}.sif

cache:
  paths:
   - .cache/pip
   - venv/
   - GiBUU.simg
  key: "$CI_COMMIT_REF_SLUG"

stages:
    - docker
    - release
    - test
    - coverage
    - reset_cache_image
    - doc

reset_test_image:
    stage: reset_cache_image
    cache:
        paths:
            - GiBUU.simg
    script:
        - rm -f GiBUU.simg
    only:
        - tags

.virtualenv_template: &virtualenv_definition |
  python -V
  export SETUPTOOLS_USE_DISTUTILS=stdlib
  pip install virtualenv
  virtualenv venv
  source venv/bin/activate
  pip install -U pip setuptools yapf setuptools_scm
  make install-dev
  pip list
  date

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


test:
    image: python:3.10
    stage: test
    script:
        - *virtualenv_definition
        - make test
    <<: *junit_definition

code-style:
    image: python:3.10
    stage: test
    script:
        - *virtualenv_definition
        - yapf -r -d -e "venv" ./km3buu
    allow_failure: true