# # This file is a part of the CaosDB Project. # # Copyright (C) 2021 Indiscale GmbH <info@indiscale.com> # Copyright (C) 2021 Daniel Hornung <d.hornung@indiscale.com> # Copyright (C) 2021 Timm Fitschen <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: # this is the image where cpplib repo is present (artifact from pipeline in # caosdb-cpplib) CPPLIB_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv OCTAVE_REGISTRY_IMAGE: $CI_REGISTRY_IMAGE/testenv:$CI_COMMIT_REF_NAME CPPLIB_BRANCH: f-extern-c image: $OCTAVE_REGISTRY_IMAGE stages: - setup - test - deploy ######## Setup ######## # Build a docker image in which tests for this repository can run build-testenv: tags: [ cached-dind ] stage: setup image: docker:20.10 script: - DOCKER_BASE_IMAGE="${CPPLIB_REGISTRY_IMAGE}:${CPPLIB_BRANCH}" - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker pull "$OCTAVE_REGISTRY_IMAGE" || true - docker build --build-arg DOCKER_BASE_IMAGE=$DOCKER_BASE_IMAGE --file .docker/Dockerfile --pull --cache-from "$OCTAVE_REGISTRY_IMAGE" --tag "$OCTAVE_REGISTRY_IMAGE" . - docker push "$OCTAVE_REGISTRY_IMAGE" # Formatting with miss_hit code_style: tags: [ docker ] stage: test script: - mh_style -v - mh_style --octave ./src ./doc allow_failure: true # Unit tests test: tags: [ docker ] stage: test script: - octave -v - make test linting: tags: [ docker ] stage: test script: - mh_lint --octave ./ # Build the sphinx documentation and make it ready for deployment by Gitlab Pages # Special job for serving a static website. See https://docs.gitlab.com/ee/ci/yaml/README.html#pages .pages_prepare: &pages_prepare tags: [ cached-dind ] stage: deploy script: - make doc - cp -r build/doc/html ./public test_pages: <<: *pages_prepare except: refs: - main artifacts: paths: - public pages: <<: *pages_prepare only: refs: - main artifacts: paths: - public