From cf1d2914c78c09e65c5df838adce528836774825 Mon Sep 17 00:00:00 2001 From: Kevin Tumma Date: Thu, 16 Nov 2023 12:12:09 +0100 Subject: [PATCH] hotfix --- .gitlab-ci.yml | 132 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 106 insertions(+), 26 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 65a4cfb..db07dfd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,29 +1,109 @@ -variables: - PROJECT_NAME_PARENT: redactmanager - TEST_STARTUP: "" - TEST_BASE: "" - TEST_PERFORMANCE: "" - TEST_LOAD: "" - KUBE_CONTEXT_BARATHEON: "redactmanager/infra:baratheon" - KUBE_CONTEXT_BARATHEON2: "redactmanager/infra:baratheon2" - KUBE_CONTEXT_LANNISTER: "redactmanager/infra:lannister" - DEACTIVATE_TESTS: "true" +stages: + - lint + - build + - deploy + - release -include: - - project: 'gitlab/gitlab' - ref: 'main' - file: 'ci-templates/helm_automatedtests_releases.yml' - -Construct Readme: - stage: lint - allow_failure: true - needs: - - Get Scripts - rules: - - changes: - - values.yaml +default: image: - name: registry.knecon.com/knecon/devops/readme-generator:1.1.0 + name: "alpine/k8s:1.26.3" + +variables: + PIPELINE: + description: "Defines which Path of the Pipeline" + value: "default" + options: + - release + - default + - custom + +workflow: + name: "Pipeline for Merge Request: $merge_request_event" + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + variables: + PIPELINE: "release" + - if: $CI_COMMIT_REF_NAME =~ /release/ + variables: + PIPELINE: "release" + - if: $PIPELINE == "custom" + - if: $CI_COMMIT_TAG + when: never + - if: $CI_PIPELINE_SOURCE == "push" + when: never + - if: "$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS" + when: never + +Helm Lint: + stage: lint + image: + name: alpine/helm:3.11.1 + entrypoint: ["/bin/sh", "-c"] script: - - ls -la - - source gitlab/ci-templates/qa/script_library.sh; check_readme_values + - helm lint . + +Helm Template: + stage: lint + image: + name: alpine/helm:3.11.1 + entrypoint: ["/bin/sh", "-c"] + script: + - echo "Templating for Answerfile Container Upload" + - helm template . -f testanswers/answers-startup.yml + +Kubescore: + stage: lint + image: zegl/kube-score:latest + script: + - echo "Scoring the Chart YAML" + - kube-score score Chart.yaml + +Nexus custom Upload: + stage: release + needs: + - Helm Template + - Helm Lint + rules: + - if: $PIPELINE == "custom" + image: registry.knecon.com/knecon/devops/build-image:latest + script: + - VERSION=$(cat Chart.yaml | grep "^version:" | sed 's/^version:\s\(.*\)$/\1/g') + - uploadFile=$( helm package . | awk 'NF>1{print q $NF}' ) + - curl -s -u "${CI_NEXUS_USER}:${CI_NEXUS_PASSWORD}" "${CI_NEXUS_ADDRESS}:443/repository/red-dev/" --upload-file $uploadFile + +Nexus Upload: + stage: release + needs: + - Helm Template + - Helm Lint + rules: + - if: $PIPELINE == "release" + image: registry.knecon.com/knecon/devops/build-image:latest + script: + - VERSION=$(cat Chart.yaml | grep "^version:" | sed 's/^version:\s\(.*\)$/\1/g') + - uploadFile=$( helm package . | awk 'NF>1{print q $NF}' ) + - curl -s -u "${CI_NEXUS_USER}:${CI_NEXUS_PASSWORD}" "${CI_NEXUS_ADDRESS}:443/repository/red-dev/" --upload-file $uploadFile + - echo "FILE=$(echo $uploadFile)" >> variables.env + - echo "VERSION=$(echo $VERSION)" >> variables.env + artifacts: + reports: + dotenv: variables.env + +Helm-pre-release: + stage: release + rules: + - if: $PIPELINE == "release" + needs: + - job: Nexus Upload + artifacts: true + image: registry.gitlab.com/gitlab-org/release-cli:latest + script: + - echo "Releasing version $VERSION" + release: + tag_name: '$VERSION' + description: '$VERSION' + ref: '$CI_COMMIT_SHA' + assets: + links: + - name: '$FILE' + url: '${CI_NEXUS_ADDRESS}/repository/red-dev/$FILE' \ No newline at end of file