# # This file is a part of the CaosDB Project. # # Copyright (C) 2018 Research Group Biomedical Physics, # Max-Planck-Institute for Dynamics and Self-Organization Göttingen # Copyright (C) 2019 Henrik tom Wörden # Copyright (C) 2020 Indiscale GmbH <info@indiscale.com> # Copyright (C) 2020 Daniel Hornung <d.hornung@indiscale.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. variables: CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/caosdb-advanced-user-tools/testenv:latest CI_REGISTRY_IMAGE_BASE: $CI_REGISTRY/caosdb/caosdb-advanced-user-tools/base:latest # When using dind, it's wise to use the overlayfs driver for # improved performance. services: - docker:19.03.0-dind stages: - setup - cert - style - unittest - integrationtest - deploy test: tags: [cached-dind] stage: integrationtest image: $CI_REGISTRY_IMAGE_BASE script: - if [[ "$CAOSDB_TAG" == "" ]]; then CAOSDB_TAG=dev-latest; fi - echo $CAOSDB_TAG - time docker load < /image-cache/caosdb-advanced-testenv.tar || true - time docker load < /image-cache/mariadb.tar || true - time docker load < /image-cache/caosdb.tar || true - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker login -u gitlab+deploy-token-ci-pull -p $TOKEN_CI_PULL $CI_REGISTRY_INDISCALE - time docker pull $CI_REGISTRY_IMAGE - time docker pull mariadb:10.4 - time docker pull $CI_REGISTRY_INDISCALE/caosdb/src/caosdb-deploy:$CAOSDB_TAG - EXEPATH=`pwd` CAOSDB_TAG=$CAOSDB_TAG docker-compose -f .docker/docker-compose.yml up -d - cd .docker - /bin/sh ./run.sh - cd .. - docker logs docker_caosdb-server_1 &> ../caosdb_log.txt - docker logs docker_sqldb_1 &> ../mariadb_log.txt - docker-compose -f .docker/docker-compose.yml down - rc=`cat .docker/result` - exit $rc dependencies: [cert] artifacts: paths: - caosdb_log.txt - mariadb_log.txt when: on_failure expire_in: 1 week build-testenv: tags: [cached-dind] image: docker:18.09 stage: setup only: - schedules script: - df -h - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY # use here general latest or specific branch latest... - docker build --file .docker/Dockerfile -t $CI_REGISTRY_IMAGE . - docker push $CI_REGISTRY_IMAGE - docker save $CI_REGISTRY_IMAGE > /image-cache/caosdb-advanced-testenv.tar - cd .docker-base - docker build -t $CI_REGISTRY_IMAGE_BASE . - docker push $CI_REGISTRY_IMAGE_BASE cert: tags: [docker] stage: cert image: $CI_REGISTRY_IMAGE artifacts: paths: - .docker/cert/ expire_in: 1 week script: - cd .docker - CAOSHOSTNAME=caosdb-server ./cert.sh style: tags: [docker] stage: style image: $CI_REGISTRY_IMAGE script: # For the moment, ignore type comparisons in datamodel_problems.py - autopep8 -ar --diff --exit-code --exclude ./src/caosadvancedtools/datamodel_problems.py . - autopep8 -ar --diff --exit-code --ignore E721 ./src/caosadvancedtools/datamodel_problems.py allow_failure: true unittest: tags: [docker] stage: unittest image: $CI_REGISTRY_IMAGE script: - tox # Build the sphinx documentation and make it ready for deployment by Gitlab Pages # documentation: # stage: deploy # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages pages: stage: deploy image: $CI_REGISTRY_IMAGE tags: [docker] only: - dev script: - echo "Deploying" - make doc - cp -r build/doc/html public artifacts: paths: - public