diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e614080d787bd9e6d210cd2888c64ce75a5223b..d1c7460c77d3b70c04517ebcfca24062af1f2ad0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,9 +1,16 @@ +include: + - template: 'Workflows/Branch-Pipelines.gitlab-ci.yml' + stages: - build - test - check - deploy +default: + tags: + - exec-docker + .dind: tags: - exec-dind @@ -15,15 +22,15 @@ stages: variables: DOCKER_TLS_CERTDIR: "/certs" + # Theodolite Helm Chart lint-helm: stage: check + needs: [] image: name: alpine/helm:3.5.2 entrypoint: [""] - tags: - - exec-docker script: helm lint helm/ @@ -31,8 +38,6 @@ lint-helm: .benchmarks: image: openjdk:11-jdk - tags: - - exec-docker variables: GRADLE_OPTS: "-Dorg.gradle.daemon=false" cache: @@ -42,6 +47,11 @@ lint-helm: before_script: - export GRADLE_USER_HOME=`pwd`/.gradle - cd theodolite-benchmarks + rules: + - changes: + - theodolite-benchmarks/**/* + - when: manual + allow_failure: true build-benchmarks: stage: build @@ -124,177 +134,154 @@ spotbugs-benchmarks: - docker push $CR_HOST/$CR_ORG/$IMAGE_NAME - docker logout rules: - - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG" - when: always - changes: - theodolite-benchmarks/* - theodolite-benchmarks/$JAVA_PROJECT_NAME/**/* - - theodolite-benchmarks/kstreams-commons/**/* - - theodolite-benchmarks/flink-commons/**/* - - theodolite-benchmarks/beam-commons/**/* - - theodolite-benchmarks/load-generator-commons/**/* - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" - when: always + - theodolite-benchmarks/{$JAVA_PROJECT_DEPS}/**/* + if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $JAVA_PROJECT_DEPS" - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME" when: manual allow_failure: true -# ---------------------- Kstreams: deploy-uc1-kstreams: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc1-kstreams-app" JAVA_PROJECT_NAME: "uc1-kstreams" + JAVA_PROJECT_DEPS: "kstreams-commons" deploy-uc2-kstreams: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc2-kstreams-app" JAVA_PROJECT_NAME: "uc2-kstreams" + JAVA_PROJECT_DEPS: "kstreams-commons" deploy-uc3-kstreams: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc3-kstreams-app" JAVA_PROJECT_NAME: "uc3-kstreams" + JAVA_PROJECT_DEPS: "kstreams-commons" deploy-uc4-kstreams: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc4-kstreams-app" JAVA_PROJECT_NAME: "uc4-kstreams" + JAVA_PROJECT_DEPS: "kstreams-commons" -# ---------------------- Flink: deploy-uc1-flink: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc1-flink" JAVA_PROJECT_NAME: "uc1-flink" + JAVA_PROJECT_DEPS: "flink-commons" deploy-uc2-flink: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc2-flink" JAVA_PROJECT_NAME: "uc2-flink" + JAVA_PROJECT_DEPS: "flink-commons" deploy-uc3-flink: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc3-flink" JAVA_PROJECT_NAME: "uc3-flink" + JAVA_PROJECT_DEPS: "flink-commons" deploy-uc4-flink: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc4-flink" JAVA_PROJECT_NAME: "uc4-flink" + JAVA_PROJECT_DEPS: "flink-commons" -# ---------------------- Beam - Flink : deploy-uc1-beam-flink: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc1-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc1-beam-flink" JAVA_PROJECT_NAME: "uc1-beam-flink" + JAVA_PROJECT_DEPS: "beam-commons,uc1-beam" deploy-uc2-beam-flink: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc2-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc2-beam-flink" JAVA_PROJECT_NAME: "uc2-beam-flink" + JAVA_PROJECT_DEPS: "beam-commons,uc2-beam" deploy-uc3-beam-flink: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc3-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc3-beam-flink" JAVA_PROJECT_NAME: "uc3-beam-flink" + JAVA_PROJECT_DEPS: "beam-commons,uc3-beam" deploy-uc4-beam-flink: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc4-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc4-beam-flink" JAVA_PROJECT_NAME: "uc4-beam-flink" + JAVA_PROJECT_DEPS: "beam-commons,uc4-beam" -# ---------------------- Beam - Samza: deploy-uc1-beam-samza: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc1-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc1-beam-samza" JAVA_PROJECT_NAME: "uc1-beam-samza" + JAVA_PROJECT_DEPS: "beam-commons,uc1-beam" deploy-uc2-beam-samza: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc2-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc2-beam-samza" JAVA_PROJECT_NAME: "uc2-beam-samza" + JAVA_PROJECT_DEPS: "beam-commons,uc2-beam" deploy-uc3-beam-samza: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc3-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc3-beam-samza" JAVA_PROJECT_NAME: "uc3-beam-samza" + JAVA_PROJECT_DEPS: "beam-commons,uc3-beam" deploy-uc4-beam-samza: extends: .deploy-benchmarks - rules: - - changes: - - theodolite-benchmarks/uc4-beam/**/* - when: always variables: IMAGE_NAME: "theodolite-uc4-beam-samza" JAVA_PROJECT_NAME: "uc4-beam-samza" + JAVA_PROJECT_DEPS: "beam-commons,uc4-beam" -# ---------------------- Loadgenerator: deploy-uc1-load-generator: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc1-workload-generator" JAVA_PROJECT_NAME: "uc1-load-generator" + JAVA_PROJECT_DEPS: "load-generator-commons" deploy-uc2-load-generator: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc2-workload-generator" JAVA_PROJECT_NAME: "uc2-load-generator" + JAVA_PROJECT_DEPS: "load-generator-commons" deploy-uc3-load-generator: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc3-workload-generator" JAVA_PROJECT_NAME: "uc3-load-generator" + JAVA_PROJECT_DEPS: "load-generator-commons" deploy-uc4-load-generator: extends: .deploy-benchmarks variables: IMAGE_NAME: "theodolite-uc4-workload-generator" JAVA_PROJECT_NAME: "uc4-load-generator" + JAVA_PROJECT_DEPS: "load-generator-commons" # Theodolite Framework @@ -303,8 +290,6 @@ deploy-uc4-load-generator: image: name: ghcr.io/graalvm/native-image:java11-21.1.0 entrypoint: [""] - tags: - - exec-docker variables: GRADLE_OPTS: "-Dorg.gradle.daemon=false" cache: @@ -386,40 +371,47 @@ deploy-theodolite: - docker push $CR_HOST/$CR_ORG/theodolite - docker logout rules: - - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $CI_COMMIT_TAG" - when: always - changes: - theodolite/**/* 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 -# Theodolite SLO Checker: Lag Trend +# Theodolite SLO Checker test-slo-checker-lag-trend: stage: test + needs: [] image: python:3.7-slim - tags: - - exec-docker - script: + before_script: - cd slo-checker/record-lag + script: - pip install -r requirements.txt - cd app - python -m unittest + rules: + - changes: + - slo-checker/record-lag/**/* + - when: manual + allow_failure: true test-slo-checker-dropped-records-kstreams: stage: test + needs: [] image: python:3.7-slim - tags: - - exec-docker - script: + before_script: - cd slo-checker/dropped-records + script: - pip install -r requirements.txt - cd app - python -m unittest + rules: + - changes: + - slo-checker/dropped-records/**/* + - when: manual + allow_failure: true deploy-slo-checker-lag-trend: stage: deploy @@ -436,12 +428,9 @@ deploy-slo-checker-lag-trend: - docker push $CR_HOST/$CR_ORG/theodolite-slo-checker-lag-trend - docker logout rules: - - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $CI_COMMIT_TAG" - when: always - changes: - slo-checker/record-lag/**/* 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 @@ -461,12 +450,9 @@ deploy-slo-checker-dropped-records-kstreams: - docker push $CR_HOST/$CR_ORG/theodolite-slo-checker-dropped-records-kstreams - docker logout rules: - - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $CI_COMMIT_TAG" - when: always - changes: - slo-checker/dropped-records/**/* 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 @@ -488,12 +474,9 @@ deploy-random-scheduler: - docker push $CR_HOST/$CR_ORG/theodolite-random-scheduler - docker logout rules: - - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $CI_COMMIT_TAG" - when: always - changes: - execution/infrastructure/random-scheduler/**/* 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