Newer
Older
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
SINGULARITY_RELEASE_IMAGE: km3buu_${CI_COMMIT_TAG}.sif
cache:
paths:
- .cache/pip
key: "$CI_COMMIT_REF_SLUG"
- docker
- release
- reset_cache_image
reset_test_image:
stage: reset_cache_image
cache:
paths:
- GiBUU.simg
script:
only:
- tags
.virtualenv_template: &virtualenv_definition |
pip install virtualenv
virtualenv venv
source venv/bin/activate
pip install -U pip setuptools yapf setuptools_scm
pip list
.junit_template: &junit_definition
artifacts:
reports:
junit: "reports/junit*.xml"

Johannes Schumann
committed
test:
stage: test
script:
- *virtualenv_definition
- make test
<<: *junit_definition
code-style:
stage: test
script:
- *virtualenv_definition
allow_failure: true
coverage:
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
- *virtualenv_definition
- cd doc && make clean && cd ..
- make doc
- mv doc/_build/html public/
- mv reports/coverage public/coverage
artifacts:
paths:
- public
cache: {}
only:
- tags
- master
- python
release-docker:
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
release-singularity:
image: docker.km3net.de/base/singularity:3.6.2
stage: release
script:
- singularity build $SINGULARITY_RELEASE_IMAGE docker://$CONTAINER_RELEASE_IMAGE
- du -sh $SINGULARITY_RELEASE_IMAGE
- mkdir -p ~/.ssh && ssh-keyscan -H -t rsa $KM3NET_SFTP_HOST >> ~/.ssh/known_hosts
- lftp -u $KM3NET_SFTP_USER,$KM3NET_SFTP_PASSWORD sftp://$KM3NET_SFTP_HOST -e "set ssl:verify-certificate no; cd singularity/; put $SINGULARITY_RELEASE_IMAGE; bye"
dependencies:
- release-docker