diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8bf42eddaa0b4896d853b7935040774f300353b..0dda0bdb6be4434c91801cb6665364fb7fd63d6a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,4 +18,15 @@ benchmarks: - benchmarks/* - when: manual allow_failure: true - \ No newline at end of file + +execution: + stage: triggers + trigger: + include: execution/.gitlab-ci.yml + strategy: depend + rules: + - if: "$CI_COMMIT_TAG" + - changes: + - execution/* + - when: manual + allow_failure: true diff --git a/execution/.gitlab-ci.yml b/execution/.gitlab-ci.yml new file mode 100644 index 0000000000000000000000000000000000000000..c1a58f4bb9fd0adfe4cb5c22881c78a72cd13d14 --- /dev/null +++ b/execution/.gitlab-ci.yml @@ -0,0 +1,61 @@ +stages: + - deploy + +.deploy: + stage: deploy + tags: + - exec-dind + image: docker:19.03.1 + services: + - docker:19.03.1-dind + variables: + DOCKER_TLS_CERTDIR: "/certs" + script: + - DOCKER_TAG_NAME=$(echo $CI_COMMIT_REF_SLUG- | sed 's/^master-$//') + - docker build --pull -t theodolite ./execution + - "[ ! $CI_COMMIT_TAG ] && docker tag theodolite $DOCKERHUB_ORG/theodolite:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag theodolite $DOCKERHUB_ORG/theodolite:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag theodolite $DOCKERHUB_ORG/theodolite:$CI_COMMIT_TAG" + - echo $DOCKERHUB_PW | docker login -u $DOCKERHUB_ID --password-stdin + - docker push $DOCKERHUB_ORG/theodolite + - docker logout + rules: + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $CI_COMMIT_TAG" + when: always + - changes: + - execution/**/* + if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW" + when: always + - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW" + when: manual + allow_failure: true + +deploy-ghcr: + stage: deploy + tags: + - exec-dind + image: docker:19.03.1 + services: + - docker:19.03.1-dind + variables: + DOCKER_TLS_CERTDIR: "/certs" + script: + - DOCKER_TAG_NAME=$(echo $CI_COMMIT_REF_SLUG- | sed 's/^master-$//') + - docker build --pull -t theodolite ./execution + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME ghcr.io/$GITHUB_CR_ORG/theodolite:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME ghcr.io/$GITHUB_CR_ORG/theodolite:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME ghcr.io/$GITHUB_CR_ORG/theodolite:$CI_COMMIT_TAG" + - echo $GITHUB_CR_TOKEN | docker login ghcr.io -u $GITHUB_CR_USER --password-stdin + - docker push ghcr.io/$GITHUB_CR_ORG/theodolite + - docker logout + rules: + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $CI_COMMIT_TAG" + when: always + - changes: + - execution/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN" + when: manual + allow_failure: true + \ No newline at end of file