Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 10.63 KiB
#
# 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
#
# 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/src/caosdb-crawler/testenv:$CI_COMMIT_REF_NAME
   CI_REGISTRY_IMAGE_BASE: $CI_REGISTRY/caosdb/src/caosdb-pyinttest/base:latest

stages:
  - info
  - setup
  - cert
  - style
  - test
  - deploy


# During the test stage the CI pipeline (which runs in a "root" docker) starts
# two docker containers with docker-compose (one for the caosdb-server, another
# for the mysql-backend). Then a third docker is being started which contains
# the test suite and executes it.
#
# +-------------(root docker)-------------------------+
# |                                                   |
# |             +-(caosdb_mysqlbackend)-------------+ |
# |             |                                   | |
# |             +-----------------------------------+ |
# |             +-(caosdb-server)-------------------+ |
# |             |                                   | |
# |             | /opt/caosdb                       | |
# |    .------->|  + /git/caosdb-server/scripting/  | |
# |    | .----->|  + /git/caosdb-server/authtoken/  | |
# |    | | .--->|  + /mnt/extroot                   | |
# |    | | | .->|  + /cert                          | |
# |    | | | |  |                                   | |
# |    | | | |  +-----------------------------------+ |
# |    | | | |                                        |
# |    | | | |    filesystem:                         |
# |    | | |  *---  /cert -----------.                |
# |    | | |                          |               |
# |    | | |      volumes:            |               |
# |    | |  *-----  extroot  ------.  |               |
# |    |  *-------  scripting  --.  | |               |
# |     *---------  authtoken  -. | | |               |
# |                             | | | |               |
# | +-(crawler tests)---+       | | | |               |
# | |                      |    | | | |               |
# | | /authtoken           |<---* | | |               |
# | | /scripting           |<----*  | |               |
# | | /extroot             |<------*  |               |
# | | /cert                |<--------*                |
# | |                      |                          |
# | +----------------------+                          |
# +---------------------------------------------------+