image: docker.km3net.de/base/singularity-py3:3.5.3 variables: 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 cache: paths: - .cache/pip - venv/ - GiBUU.simg key: "$CI_COMMIT_REF_SLUG" stages: - test - coverage - docker - reset_cache_image - release - doc reset_test_image: stage: reset_cache_image cache: paths: - GiBUU.simg script: - rm GiBUU.simg only: - tags .virtualenv_template: &virtualenv_definition | python -V pip install virtualenv virtualenv venv source venv/bin/activate pip install -U pip setuptools yapf if [ ! -f GiBUU.simg ]; then make buildremote; fi make install-dev pip list .junit_template: &junit_definition artifacts: reports: junit: "reports/junit*.xml" test: image: docker.km3net.de/base/singularity-py3:3.5.3 stage: test tags: - docker script: - *virtualenv_definition - make test <<: *junit_definition code-style: image: docker.km3net.de/base/singularity-py3:3.5.3 stage: test script: - *virtualenv_definition - yapf -r -d -e "venv" ./km3buu allow_failure: true coverage: image: docker.km3net.de/base/singularity-py3:3.5.3 stage: coverage tags: - docker 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 docker: 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 release-image: 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 pages: image: docker.km3net.de/base/python:3.6 stage: doc script: - make install-dev - 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