|
| 1 | +# Reihenfolge für die Ausführung der Schritte |
| 2 | +# Bitte keine Stages entfernen, da sonst die Syntax u.U. ungültig wird! |
| 3 | +stages: |
| 4 | + - codecheck |
| 5 | + - build |
| 6 | + - test |
| 7 | + - dependency-check |
| 8 | + - sonar |
| 9 | + - deploy |
| 10 | + - release |
| 11 | + - build-image |
| 12 | + - review |
| 13 | + - cleanup |
| 14 | + - deploy-dev |
| 15 | + - integration-test |
| 16 | + - deploy-test |
| 17 | + - system-test |
| 18 | + - deploy-production |
| 19 | + |
| 20 | +# Auswahl der Runner |
| 21 | +default: |
| 22 | + tags: |
| 23 | + - openshift |
| 24 | + |
| 25 | +variables: |
| 26 | + # Hinweis: Variable APP_JAR_FILE wird in build.mvn ermittelt, als Umgebungsvariable hinzugefügt und in den mvn-Jobs genutzt |
| 27 | + # Basispfad der Anwendung. Wird für den Dateipfad zur JAR-Datei benötigt. |
| 28 | + APP_PATH: . |
| 29 | + # wenn ein Artifact Deployment stattfinden soll, dann ausklammern. |
| 30 | + DISABLE_DEPLOYMENT_ARTIFACTORY: "true" |
| 31 | + # Leerzeichen-separierte Liste von SAST Analyzers, welche nicht ausgeführt werden sollen |
| 32 | + # Siehe https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml |
| 33 | + SAST_EXCLUDED_ANALYZERS: "eslint nodejs-scan semgrep spotbugs" |
| 34 | + # Name für Openshift Objekte DeploymentConfig, BuildConfig, ConfigMap, ImageStream |
| 35 | + OPENSHIFT_APP_NAME: |
| 36 | + # Openshift Namespace der DEV-Umgebung. |
| 37 | + OPENSHIFT_DEV_NAMESPACE: |
| 38 | + # Umgebungsname für die DEV-Umgebung (wird an DC, BC, CM an den Namen angehängt). |
| 39 | + OPENSHIFT_DEV_ENV: dev |
| 40 | + # Openshift Namespace der TEST-Umgebung. |
| 41 | + OPENSHIFT_TEST_NAMESPACE: |
| 42 | + # Umgebungsname für die TEST-Umgebung (wird an DC, BC, CM an den Namen angehängt). |
| 43 | + OPENSHIFT_TEST_ENV: test |
| 44 | + # Openshift Namespace der PROD-Umgebung. |
| 45 | + OPENSHIFT_PROD_NAMESPACE: |
| 46 | + # Umgebungsname für die PROD-Umgebung (wird an DC, BC, CM an den Namen angehängt). |
| 47 | + OPENSHIFT_PROD_ENV: prod |
| 48 | + |
| 49 | +# Legt das Verhalten in Pipeline in verschiedenen Fällen fest: |
| 50 | +# 1. Der Auslöser ist ein Bot und es ist keine Tag-Pipeline: |
| 51 | +# Die Pipeline wird nicht gestartet, da es sich hierbei um eine Versionsänderung duch das Maven Release Plugin handelt |
| 52 | +# 2. DO_RELEASE ist nicht auf "true" und der Commit kommt von einem Branch oder Tag: |
| 53 | +# Das ist der "Normalfall" und die Pipeline wird mit allen notwendigen Variablen gestartet |
| 54 | +# 3. DO_RELEASE ist auf "true" und der Commit kommt von einem Branch oder Tag: |
| 55 | +# Die Pipeline wird ohne Variablen gestartet, da sie lediglich einen Release durchführen soll |
| 56 | +workflow: |
| 57 | + rules: |
| 58 | + - if: $CI_PIPELINE_SOURCE == "schedule" |
| 59 | + variables: |
| 60 | + DISABLE_SELENIUM: "true" |
| 61 | + DISABLE_OPENSHIFT: "true" |
| 62 | + DISABLE_DEPLOYMENT_ARTIFACTORY: "true" |
| 63 | + - if: $GITLAB_USER_LOGIN =~ /^project_/ && $CI_COMMIT_TAG == null |
| 64 | + when: never |
| 65 | + - if: $DO_RELEASE != "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) |
| 66 | + |
| 67 | + - if: $DO_RELEASE == "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) |
| 68 | + variables: |
| 69 | + DISABLE_OPENSHIFT: "true" |
| 70 | + DISABLE_SONAR: "true" |
| 71 | + DISABLE_OWASP: "true" |
| 72 | + DISABLE_DEPLOYMENT_ARTIFACTORY: "true" |
| 73 | + |
| 74 | +include: |
| 75 | + # Für Branch Pipelines |
| 76 | + - template: "Workflows/Branch-Pipelines.gitlab-ci.yml" |
| 77 | + |
| 78 | + - project: "ccse/cicd/gitlab-runner-templates" |
| 79 | + ref: "main-2.x" |
| 80 | + file: |
| 81 | + # Gitlab AutoDevOps Secret Detection (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-secret-detection) |
| 82 | + - "SecretDetection.gitlab-ci.yml" |
| 83 | + # Gitlab AutoDevOps SAST (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-sast) |
| 84 | + - "SAST.gitlab-ci.yml" |
| 85 | + # Maven Build (stage: build), Unit-Tests (stage: test) und Artifactory Deployment (stage: deploy-dev) |
| 86 | + - "Maven.gitlab-ci.yml" |
| 87 | + # Maven Release Plugin |
| 88 | + - "MavenRelease.gitlab-ci.yml" |
| 89 | + # Codecheck Analyse |
| 90 | + - "Codecheck.gitlab-ci.yml" |
| 91 | + # Include Sonarqube Step |
| 92 | + - "SonarQube.gitlab-ci.yml" |
| 93 | + # OWASP Dependency Check |
| 94 | + - OWASP-Dependency-Check.gitlab-ci.yml |
| 95 | + # Openshift Image Build über S2I und Deployment in Dev (stage: deploy-dev) |
| 96 | + - "Openshift-CI.gitlab-ci.yml" |
| 97 | + # Deployment (Rollout) in Test (stage: deploy-test) und in Prod (stage: deploy-prod) |
| 98 | + - "Openshift-CD.gitlab-ci.yml" |
| 99 | + |
| 100 | +# Der Dependency-Check analysiert verwendete Libraries auf bekannte Schwachstellen. |
| 101 | +# SUPPRESSION_FILE kann erweitert werden um eine eigene Custom-Suppressions-Datei, |
| 102 | +# indem diese mit Leerzeichen getrennt dahinter geschrieben werden. |
| 103 | +dependency-check: |
| 104 | + variables: |
| 105 | + SUPPRESSION_FILE: "--suppression https://ccse.pages.muenchen.de/refarch-security/backend/suppression-cves.xml" |
0 commit comments