diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f437abb0578ca69685857826a8b34343c0a0b89c..04e832402292530aae089e76a52bb83d87392591 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,9 @@ # # This file is a part of the CaosDB Project. # -# Copyright (C) 2019-2021 Indiscale GmbH <info@indiscale.com> +# Copyright (C) 2019-2022 Indiscale GmbH <info@indiscale.com> # Copyright (C) 2019 Henrik tom Wörden <h.tomwoerden@indiscale.com> -# Copyright (C) 2020 Daniel Hornung <d.hornung@indiscale.com> +# Copyright (C) 2020-2022 Daniel Hornung <d.hornung@indiscale.com> # Copyright (C) 2021 Timm Fitschen <t.fitschen@indiscale.com> # # This program is free software: you can redistribute it and/or modify @@ -23,7 +23,6 @@ variables: CPPLIB_REGISTRY_IMAGE: $CI_REGISTRY/caosdb/src/caosdb-cpplib/testenv:$CI_COMMIT_REF_NAME - CPPINTTEST_PIPELINE: https://gitlab.indiscale.com/api/v4/projects/111/trigger/pipeline CPPINTTEST_BRANCHES: https://gitlab.indiscale.com/api/v4/projects/111/repository/branches GIT_SUBMODULE_STRATEGY: normal @@ -32,6 +31,9 @@ variables: TRIGGERED_BY_REF: $CI_COMMIT_REF_NAME TRIGGERED_BY_HASH: $CI_COMMIT_SHORT_SHA + # For storing cross-job environment variables + DOTENV: custom.env + image: $CPPLIB_REGISTRY_IMAGE @@ -92,12 +94,11 @@ test: - cmake --build . -j --target cxxcaosdbcli # - cmake --build . -j --target ccaosdbcli # Disabled until it compiles again. -# trigger the integration tests -trigger_inttest: +trigger_prepare: + # Calculate the branch name tags: [ docker ] stage: deploy script: - ## Determine the cppinttest branch... # ... use an f-branch if posible... - F_BRANCH=dev @@ -122,18 +123,36 @@ trigger_inttest: # ... and fall-back to dev - CPPINT_REF=${CPPINT_REF:-dev} - - echo "Triggering caosdb-cppinttest@${CPPINT_REF} (F_BRANCH=$F_BRANCH)" - - curl -w "%{stderr}HTTPCODE=%{http_code}" -X POST - -F token=$CI_JOB_TOKEN - -F "variables[TRIGGERED_BY_REPO]=$TRIGGERED_BY_REPO" - -F "variables[TRIGGERED_BY_REF]=$TRIGGERED_BY_REF" - -F "variables[TRIGGERED_BY_HASH]=$TRIGGERED_BY_HASH" - -F "variables[CPPLIB_REGISTRY_IMAGE]=$CPPLIB_REGISTRY_IMAGE" - -F "variables[F_BRANCH]=${F_BRANCH}" - -F ref=${CPPINT_REF} $CPPINTTEST_PIPELINE 2>HTTPCODE - - # fail if the request failed - - grep -c "HTTPCODE=2" HTTPCODE + # Write to dotenv + - echo "CPPINT_REF=${CPPINT_REF}" >> "$DOTENV" + - echo "F_BRANCH=${F_BRANCH}" >> "$DOTENV" + - cat "$DOTENV" + artifacts: + # this special artifact will be loaded in the next job and make the environment variables available + reports: + dotenv: "$DOTENV" + expire_in: 1 day + + +# trigger the integration tests +trigger_inttest: + stage: deploy + needs: [ trigger_prepare ] + inherit: + variables: + # List the variables that shall be inherited, which also means they will override any equally + # named varibles in child pipelines. + - TRIGGERED_BY_REPO + - TRIGGERED_BY_REF + - TRIGGERED_BY_HASH + - CPPLIB_REGISTRY_IMAGE + variables: + # dotenv variables must be set again here. + F_BRANCH: $F_BRANCH + trigger: + project: caosdb/src/caosdb-cppinttest + branch: $CPPINT_REF + strategy: depend # 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