diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0dda0bdb6be4434c91801cb6665364fb7fd63d6a..d48e1cd25fbee50777491e5eeecd0c3b95ea166f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,32 +1,200 @@ -workflow: - rules: - - if: $CI_MERGE_REQUEST_ID - when: never - - when: always - stages: - - triggers + - build + - test + - check + - deploy + + +# Theodolite Benchmarks + +.benchmarks: + image: openjdk:11-jdk + tags: + - exec-docker + variables: + GRADLE_OPTS: "-Dorg.gradle.daemon=false" + cache: + paths: + - .gradle + before_script: + - cd benchmarks + - export GRADLE_USER_HOME=`pwd`/.gradle + +build-benchmarks: + stage: build + extends: .benchmarks + script: ./gradlew --build-cache assemble + artifacts: + paths: + - "benchmarks/build/libs/*.jar" + - "benchmarks/*/build/distributions/*.tar" + expire_in: 1 day + +test-benchmarks: + stage: test + extends: .benchmarks + needs: + - build-benchmarks + script: ./gradlew test --continue + artifacts: + reports: + junit: + - "benchmarks/**/build/test-results/test/TEST-*.xml" + +checkstyle-benchmarks: + stage: check + extends: .benchmarks + needs: + - build-benchmarks + - test-benchmarks + script: ./gradlew checkstyle --continue + artifacts: + paths: + - "benchmarks/*/build/reports/checkstyle/main.html" + when: on_failure + expire_in: 1 day + +pmd-benchmarks: + stage: check + extends: .benchmarks + needs: + - build-benchmarks + - test-benchmarks + script: ./gradlew pmd --continue + artifacts: + paths: + - "benchmarks/*/build/reports/pmd/*.html" + when: on_failure + expire_in: 1 day + +spotbugs-benchmarks: + stage: check + extends: .benchmarks + needs: + - build-benchmarks + - test-benchmarks + script: ./gradlew spotbugs --continue + artifacts: + paths: + - "benchmarks/*/build/reports/spotbugs/*.html" + when: on_failure + expire_in: 1 day -benchmarks: - stage: triggers - trigger: - include: benchmarks/.gitlab-ci.yml - strategy: depend +.deploy-benchmarks: + stage: deploy + extends: .benchmarks + needs: + - build-benchmarks + - checkstyle-benchmarks + - pmd-benchmarks + - spotbugs-benchmarks + 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 $CR_HOST/$CR_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $CR_HOST/$CR_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $CR_HOST/$CR_ORG/$IMAGE_NAME:$CI_COMMIT_TAG" + - echo $CR_PW | docker login $CR_HOST -u $CR_USER --password-stdin + - docker push $CR_HOST/$CR_ORG/$IMAGE_NAME + - docker logout rules: - - if: "$CI_COMMIT_TAG" + - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" + when: always - changes: - - benchmarks/* - - when: manual + - $JAVA_PROJECT_NAME/**/* + - benchmarks/application-kafkastreams-commons/**/* + - benchmarks/workload-generator-commons/**/* + if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: always + - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" + when: manual allow_failure: true -execution: - stage: triggers - trigger: - include: execution/.gitlab-ci.yml - strategy: depend +deploy-uc1-kstreams-app: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc1-kstreams-app" + JAVA_PROJECT_NAME: "uc1-application" + +deploy-uc2-kstreams-app: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc2-kstreams-app" + JAVA_PROJECT_NAME: "uc2-application" + +deploy-uc3-kstreams-app: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc3-kstreams-app" + JAVA_PROJECT_NAME: "uc3-application" + +deploy-uc4-kstreams-app: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc4-kstreams-app" + JAVA_PROJECT_NAME: "uc4-application" + +deploy-uc1-load-generator: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc1-workload-generator" + JAVA_PROJECT_NAME: "uc1-workload-generator" + +deploy-uc2-load-generator: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc2-workload-generator" + JAVA_PROJECT_NAME: "uc2-workload-generator" + +deploy-uc3-load-generator: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc3-workload-generator" + JAVA_PROJECT_NAME: "uc3-workload-generator" + +deploy-uc4-load-generator: + extends: .deploy-benchmarks + variables: + IMAGE_NAME: "theodolite-uc4-workload-generator" + JAVA_PROJECT_NAME: "uc4-workload-generator" + + +# Theodolite Framework + +deploy-theodolite: + 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 $CR_HOST/$CR_ORG/theodolite:${DOCKER_TAG_NAME}latest" + - "[ ! $CI_COMMIT_TAG ] && docker tag theodolite $CR_HOST/$CR_ORG/theodolite:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" + - "[ $CI_COMMIT_TAG ] && docker tag theodolite $CR_HOST/$CR_ORG/theodolite:$CI_COMMIT_TAG" + - echo $CR_PW | docker login $CR_HOST -u $CR_USER --password-stdin + - docker push $CR_HOST/$CR_ORG/theodolite + - docker logout rules: - - if: "$CI_COMMIT_TAG" + - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $CI_COMMIT_TAG" + when: always - changes: - - execution/* - - when: manual + - execution/**/* + if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW" + when: always + - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW" + when: manual allow_failure: true diff --git a/benchmarks/.gitlab-ci.yml b/benchmarks/.gitlab-ci.yml deleted file mode 100644 index 1a4d354701459d4730dab398e0210ab9189d7ad3..0000000000000000000000000000000000000000 --- a/benchmarks/.gitlab-ci.yml +++ /dev/null @@ -1,414 +0,0 @@ -image: openjdk:11-jdk - -# Disable the Gradle daemon for Continuous Integration servers as correctness -# is usually a priority over speed in CI environments. Using a fresh -# runtime for each build is more reliable since the runtime is completely -# isolated from any previous builds. -variables: - GRADLE_OPTS: "-Dorg.gradle.daemon=false" - -cache: - paths: - - .gradle - -before_script: - - cd benchmarks - - export GRADLE_USER_HOME=`pwd`/.gradle - -stages: - - build - - test - - check - - deploy - -build: - stage: build - tags: - - exec-docker - script: ./gradlew --build-cache assemble - artifacts: - paths: - - "benchmarks/build/libs/*.jar" - - "benchmarks/*/build/distributions/*.tar" - expire_in: 1 day - -test: - stage: test - tags: - - exec-docker - script: ./gradlew test --continue - artifacts: - reports: - junit: - - "benchmarks/**/build/test-results/test/TEST-*.xml" - -checkstyle: - stage: check - tags: - - exec-docker - script: ./gradlew checkstyle --continue - artifacts: - paths: - - "benchmarks/*/build/reports/checkstyle/main.html" - when: on_failure - expire_in: 1 day - -pmd: - stage: check - tags: - - exec-docker - script: ./gradlew pmd --continue - artifacts: - paths: - - "benchmarks/*/build/reports/pmd/*.html" - when: on_failure - expire_in: 1 day - -spotbugs: - stage: check - tags: - - exec-docker - script: ./gradlew spotbugs --continue - artifacts: - paths: - - "benchmarks/*/build/reports/spotbugs/*.html" - when: on_failure - expire_in: 1 day - - -.deploy: - 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 $DOCKERHUB_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest" - - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" - - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME $DOCKERHUB_ORG/$IMAGE_NAME:$CI_COMMIT_TAG" - - echo $DOCKERHUB_PW | docker login -u $DOCKERHUB_ID --password-stdin - - docker push $DOCKERHUB_ORG/$IMAGE_NAME - - docker logout - rules: - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $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: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc1-kstreams-app: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc1-kstreams-app" - JAVA_PROJECT_NAME: "uc1-application" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc1-application/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc2-kstreams-app: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc2-kstreams-app" - JAVA_PROJECT_NAME: "uc2-application" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc2-application/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc3-kstreams-app: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc3-kstreams-app" - JAVA_PROJECT_NAME: "uc3-application" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc3-application/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc4-kstreams-app: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc4-kstreams-app" - JAVA_PROJECT_NAME: "uc4-application" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc4-application/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc1-workload-generator: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc1-workload-generator" - JAVA_PROJECT_NAME: "uc1-workload-generator" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc1-workload-generator/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc2-workload-generator: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc2-workload-generator" - JAVA_PROJECT_NAME: "uc2-workload-generator" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc2-workload-generator/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc3-workload-generator: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc3-workload-generator" - JAVA_PROJECT_NAME: "uc3-workload-generator" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc3-workload-generator/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: manual - allow_failure: true - -deploy-uc4-workload-generator: - extends: .deploy - variables: - IMAGE_NAME: "theodolite-uc4-workload-generator" - JAVA_PROJECT_NAME: "uc4-workload-generator" - rules: # hope this can be simplified soon, see #51 - - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - - changes: - - benchmarks/uc4-workload-generator/**/* - - benchmarks/application-kafkastreams-commons/**/* - if: "$DOCKERHUB_ORG && $DOCKERHUB_ID && $DOCKERHUB_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always - - 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 ghcr.io/$GITHUB_CR_ORG/$IMAGE_NAME:${DOCKER_TAG_NAME}latest" - - "[ ! $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME ghcr.io/$GITHUB_CR_ORG/$IMAGE_NAME:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" - - "[ $CI_COMMIT_TAG ] && docker tag $IMAGE_NAME ghcr.io/$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 - diff --git a/execution/.gitlab-ci.yml b/execution/.gitlab-ci.yml deleted file mode 100644 index 5577de7a083708a6bb9b83571f458e2c1fbfb340..0000000000000000000000000000000000000000 --- a/execution/.gitlab-ci.yml +++ /dev/null @@ -1,61 +0,0 @@ -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 theodolite ghcr.io/$GITHUB_CR_ORG/theodolite:${DOCKER_TAG_NAME}latest" - - "[ ! $CI_COMMIT_TAG ] && docker tag theodolite ghcr.io/$GITHUB_CR_ORG/theodolite:$DOCKER_TAG_NAME$CI_COMMIT_SHORT_SHA" - - "[ $CI_COMMIT_TAG ] && docker tag theodolite 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