Skip to content
Snippets Groups Projects
Commit bfc3b8c6 authored by Sören Henning's avatar Sören Henning
Browse files

First draft to lift up benchmark pipeline

parent de85adf0
No related branches found
No related tags found
2 merge requests!89Single CI/CD pipeline definitions,!84Gitlab CI for Theodolite-Kotlin-Quarkus
Pipeline #2051 failed
Pipeline: theodolite

#2052

    workflow: stages:
    - triggers # TODO remove
    - build
    - test
    - check
    - deploy
    .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
    script: ./gradlew test --continue
    artifacts:
    reports:
    junit:
    - "benchmarks/**/build/test-results/test/TEST-*.xml"
    checkstyle-benchmarks:
    stage: check
    extends: .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
    script: ./gradlew pmd --continue
    artifacts:
    paths:
    - "benchmarks/*/build/reports/pmd/*.html"
    when: on_failure
    expire_in: 1 day
    spotbugs-benchmarks:
    stage: check
    extends: .benchmarks
    script: ./gradlew spotbugs --continue
    artifacts:
    paths:
    - "benchmarks/*/build/reports/spotbugs/*.html"
    when: on_failure
    expire_in: 1 day
    .deploy-benchmarks:
    stage: deploy
    extends: .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_ORG/$IMAGE_NAME
    - docker logout
    rules: rules:
    - if: $CI_MERGE_REQUEST_ID - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: never when: always
    - when: always - changes:
    # - $JAVA_PROJECT_NAME/**/* # hope this can be simplified soon, see #51
    - benchmarks/application-kafkastreams-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
    deploy-uc1-kstreams-app:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc1-kstreams-app"
    JAVA_PROJECT_NAME: "uc1-application"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc1-application/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc2-kstreams-app:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc2-kstreams-app"
    JAVA_PROJECT_NAME: "uc2-application"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc2-application/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc3-kstreams-app:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc3-kstreams-app"
    JAVA_PROJECT_NAME: "uc3-application"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc3-application/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc4-kstreams-app:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc4-kstreams-app"
    JAVA_PROJECT_NAME: "uc4-application"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc4-application/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc1-load-generator:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc1-workload-generator"
    JAVA_PROJECT_NAME: "uc1-workload-generator"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc1-workload-generator/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc2-load-generator:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc2-workload-generator"
    JAVA_PROJECT_NAME: "uc2-workload-generator"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc2-workload-generator/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc3-load-generator:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc3-workload-generator"
    JAVA_PROJECT_NAME: "uc3-workload-generator"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc3-workload-generator/**/*
    - benchmarks/application-kafkastreams-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
    deploy-uc4-load-generator:
    extends: .deploy-benchmarks
    variables:
    IMAGE_NAME: "theodolite-uc4-workload-generator"
    JAVA_PROJECT_NAME: "uc4-workload-generator"
    rules: # hope this can be simplified soon, see #51
    - if: "$CR_HOST && $CR_ORG && $CR_USER && $CR_PW && $IMAGE_NAME && $JAVA_PROJECT_NAME && $CI_COMMIT_TAG"
    when: always
    - changes:
    - benchmarks/uc4-workload-generator/**/*
    - benchmarks/application-kafkastreams-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
    ##############
    stages:
    - triggers
    benchmarks: benchmarks-trigger:
    stage: triggers stage: triggers
    trigger: trigger:
    include: benchmarks/.gitlab-ci.yml include: benchmarks/.gitlab-ci.yml
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment