diff --git a/benchmarks/.gitlab-ci.yml b/benchmarks/.gitlab-ci.yml index 01ee45e06f4245a068ab5475d87482407c3d2f69..88a4809db8327b18767ca8dce8db7fb4e734767a 100644 --- a/benchmarks/.gitlab-ci.yml +++ b/benchmarks/.gitlab-ci.yml @@ -243,3 +243,172 @@ deploy-uc4-workload-generator: - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" when: manual allow_failure: true + +.deploy-ghcr: + stage: deploy + tags: + - exec-dind + # see https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#tls-enabled + # for image usage and settings for building with TLS and docker in docker + 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 $IMAGE_NAME ./$JAVA_PROJECT_NAME + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $GITHUB_CR_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $GITHUB_CR_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $GITHUB_CR_ORG/$IMAGE_NAME:$CI_COMMIT_TAG" + - echo $GITHUB_CR_TOKEN | docker login ghcr.io -u $GITHUB_CR_USER --password-stdin + - docker push ghcr.io/$GITHUB_CR_ORG/$IMAGE_NAME + - docker logout + rules: + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + # - $JAVA_PROJECT_NAME/**/* # hope this can be simplified soon, see #51 + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc1-kstreams-app: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc1-kstreams-app" + JAVA_PROJECT_NAME: "uc1-application" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc1-application/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc2-kstreams-app: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc2-kstreams-app" + JAVA_PROJECT_NAME: "uc2-application" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc2-application/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc3-kstreams-app: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc3-kstreams-app" + JAVA_PROJECT_NAME: "uc3-application" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc3-application/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc4-kstreams-app: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc4-kstreams-app" + JAVA_PROJECT_NAME: "uc4-application" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc4-application/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc1-workload-generator: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc1-workload-generator" + JAVA_PROJECT_NAME: "uc1-workload-generator" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc1-workload-generator/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc2-workload-generator: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc2-workload-generator" + JAVA_PROJECT_NAME: "uc2-workload-generator" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc2-workload-generator/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc3-workload-generator: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc3-workload-generator" + JAVA_PROJECT_NAME: "uc3-workload-generator" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc3-workload-generator/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true + +deploy-ghcr-uc4-workload-generator: + extends: .deploy-ghcr + variables: + IMAGE_NAME: "theodolite-uc4-workload-generator" + JAVA_PROJECT_NAME: "uc4-workload-generator" + rules: # hope this can be simplified soon, see #51 + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always + - changes: + - benchmarks/uc4-workload-generator/**/* + - benchmarks/application-kafkastreams-commons/**/* + if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$GITHUB_CR_ORG && $GITHUB_CR_USER && $GITHUB_CR_TOKEN && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual + allow_failure: true +