Newer
Older

Johannes Schumann
committed
image: docker.km3net.de/base/singularity:3.1
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
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
cache:
paths:
- .cache/pip
- pyenv/
key: "$CI_COMMIT_REF_SLUG"
.virtualenv_template: &virtualenv_definition |
git clone https://github.com/pyenv/pyenv.git pyenv
export PYENV_ROOT=`pwd`/pyenv
export PATH="$PYENV_ROOT/bin:$PATH"
pyenv init
pyenv install 3.8.0
pip install -U pip setuptools
make install
.junit_template: &junit_definition
artifacts:
reports:
junit: "reports/junit*.xml"

Johannes Schumann
committed
test:
image: docker.km3net.de/base/singularity:3.1
stage: test
script:
- *virtualenv_definition
- make test
- make test-km3modules
<<: *junit_definition
code-style:

Johannes Schumann
committed
image: docker.km3net.de/base/singularity:3.1
stage: test
script:
- *virtualenv_definition
- yapf -r -d -e "venv" .
allow_failure: true
coverage:

Johannes Schumann
committed
image: docker.km3net.de/base/singularity:3.1
stage: coverage
script:
- *virtualenv_definition
- "make test-cov|grep TOTAL| awk '{printf \"COVERAGE: %.2f%%\", (1-$3/$2)*100 }'"
coverage: '/COVERAGE:\s*([0-9]*\.[0-9]*%)/'
# - make test-cov
# coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
artifacts:
paths:
- reports/coverage
image: docker:stable
services:
- docker:dind
stage: docker
script:
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
tags:
- docker
only:
- tags
image: docker:stable
services:
- docker:dind
stage: release
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_LATEST_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_LATEST_IMAGE
tags:
- docker
only:
- tags