diff --git a/backend/.gitlab-ci.yml b/backend/.gitlab-ci.yml deleted file mode 100644 index 982c603a..00000000 --- a/backend/.gitlab-ci.yml +++ /dev/null @@ -1,106 +0,0 @@ -# Reihenfolge für die Ausführung der Schritte -# Bitte keine Stages entfernen, da sonst die Syntax u.U. ungültig wird! -stages: - - codecheck - - build - - test - - dependency-check - - sonar - - deploy - - release - - build-image - - review - - cleanup - - deploy-dev - - integration-test - - deploy-test - - system-test - - deploy-production - -# Auswahl der Runner -default: - tags: - - openshift - -variables: - # Hinweis: Variable APP_JAR_FILE wird in build.mvn ermittelt, als Umgebungsvariable hinzugefügt und in den mvn-Jobs genutzt - # Basispfad der Anwendung. Wird für den Dateipfad zur JAR-Datei benötigt. - APP_PATH: . - # wenn ein Artifact Deployment stattfinden soll, dann ausklammern. - DISABLE_DEPLOYMENT_ARTIFACTORY: "true" - # Leerzeichen-separierte Liste von SAST Analyzers, welche nicht ausgeführt werden sollen - # Siehe https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml - SAST_EXCLUDED_ANALYZERS: "eslint nodejs-scan semgrep spotbugs" - # Name für Openshift Objekte DeploymentConfig, BuildConfig, ConfigMap, ImageStream - OPENSHIFT_APP_NAME: - # Openshift Namespace der DEV-Umgebung. - OPENSHIFT_DEV_NAMESPACE: - # Umgebungsname für die DEV-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_DEV_ENV: dev - # Openshift Namespace der TEST-Umgebung. - OPENSHIFT_TEST_NAMESPACE: - # Umgebungsname für die TEST-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_TEST_ENV: test - # Openshift Namespace der PROD-Umgebung. - OPENSHIFT_PROD_NAMESPACE: - # Umgebungsname für die PROD-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_PROD_ENV: prod - #Maven Image, was verwendet wird. - MAVEN_IMAGE: dockerhub.muenchen.de/library/maven:3.8-eclipse-temurin-17 - -# Legt das Verhalten in Pipeline in verschiedenen Fällen fest: -# 1. Der Auslöser ist ein Bot und es ist keine Tag-Pipeline: -# Die Pipeline wird nicht gestartet, da es sich hierbei um eine Versionsänderung duch das Maven Release Plugin handelt -# 2. DO_RELEASE ist nicht auf "true" und der Commit kommt von einem Branch oder Tag: -# Das ist der "Normalfall" und die Pipeline wird mit allen notwendigen Variablen gestartet -# 3. DO_RELEASE ist auf "true" und der Commit kommt von einem Branch oder Tag: -# Die Pipeline wird ohne Variablen gestartet, da sie lediglich einen Release durchführen soll -workflow: - rules: - - if: $CI_PIPELINE_SOURCE == "schedule" - variables: - DISABLE_SELENIUM: "true" - DISABLE_OPENSHIFT: "true" - DISABLE_DEPLOYMENT_ARTIFACTORY: "true" - - if: $GITLAB_USER_LOGIN =~ /^project_/ && $CI_COMMIT_TAG == null - when: never - - if: $DO_RELEASE != "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) - - - if: $DO_RELEASE == "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) - variables: - DISABLE_OPENSHIFT: "true" - DISABLE_SONAR: "true" - DISABLE_OWASP: "true" - -include: - # Für Branch Pipelines - - template: "Workflows/Branch-Pipelines.gitlab-ci.yml" - - - project: "ccse/cicd/gitlab-runner-templates" - ref: "main-2.x" - file: - # Gitlab AutoDevOps Secret Detection (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-secret-detection) - - "SecretDetection.gitlab-ci.yml" - # Gitlab AutoDevOps SAST (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-sast) - - "SAST.gitlab-ci.yml" - # Maven Build (stage: build), Unit-Tests (stage: test) und Artifactory Deployment (stage: deploy-dev) - - "Maven.gitlab-ci.yml" - # Maven Release Plugin - - "MavenRelease.gitlab-ci.yml" - # Codecheck Analyse - - "Codecheck.gitlab-ci.yml" - # Include Sonarqube Step - - "SonarQube.gitlab-ci.yml" - # OWASP Dependency Check - - OWASP-Dependency-Check.gitlab-ci.yml - # Openshift Image Build über S2I und Deployment in Dev (stage: deploy-dev) - - "Openshift-CI.gitlab-ci.yml" - # Deployment (Rollout) in Test (stage: deploy-test) und in Prod (stage: deploy-prod) - - "Openshift-CD.gitlab-ci.yml" - -# Der Dependency-Check analysiert verwendete Libraries auf bekannte Schwachstellen. -# SUPPRESSION_FILE kann erweitert werden um eine eigene Custom-Suppressions-Datei, -# indem diese mit Leerzeichen getrennt dahinter geschrieben werden. -dependency-check: - variables: - SUPPRESSION_FILE: "--suppression https://ccse.pages.muenchen.de/refarch-security/backend/suppression-cves.xml" diff --git a/frontend/.gitlab-ci.yml b/frontend/.gitlab-ci.yml deleted file mode 100644 index a9964f8e..00000000 --- a/frontend/.gitlab-ci.yml +++ /dev/null @@ -1,172 +0,0 @@ -# Reihenfolge für die Ausführung der Schritte -# Bitte keine Stages entfernen, da sonst die Syntax u.U. ungültig wird! -stages: - - codecheck - - build - - test - - dependency-check - - sonar - - deploy - - release - - build-image - - review - - cleanup - - deploy-dev - - performance - - integration-test - - deploy-test - - system-test - - deploy-production - -# Auswahl der Runner -default: - tags: - - openshift - - -variables: - # Hinweis: Variable APP_JAR_FILE wird in build.mvn ermittelt, als Umgebungsvariable hinzugefügt und in den mvn-Jobs genutzt - # Pfad zur apigateway-Implementierung. Wird für den Dateipfad zur JAR-Datei benötigt. - APP_PATH: apigateway - # Pfad zur frontend-Implementierung in JavaScript. In diesem Verzeichnis werden die npm-Aufrufe durchgeführt. - # Kann derzeit in der rule mit exists noch nicht verwendet werden, siehe: https://gitlab.com/gitlab-org/gitlab/-/issues/283881 - NPM_DIR: frontend - # Projekte, die kein Jest nutzen können den Parameter ändern, damit Jest-spezifische Parameter nicht gesetzt sind. - NPM_UNIT_TESTS: "NO-JEST" - #Maven Image, was verwendet wird. - MAVEN_IMAGE: dockerhub.muenchen.de/library/maven:3.8-eclipse-temurin-17 - JAVA_TOOL_OPTIONS: "-Djavax.net.ssl.trustStore=$CI_PROJECT_DIR/cacerts-lhm.jks" - - # wenn ein Artifact Deployment stattfinden soll, dann ausklammern. - DISABLE_DEPLOYMENT_ARTIFACTORY: "true" - # Leerzeichen-separierte Liste von SAST Analyzers, welche nicht ausgeführt werden sollen - # Siehe https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml - SAST_EXCLUDED_ANALYZERS: "eslint nodejs-scan semgrep spotbugs" - # Name für Openshift Objekte DeploymentConfig, BuildConfig, ConfigMap, ImageStream - OPENSHIFT_APP_NAME: - # Openshift Namespace der DEV-Umgebung. - OPENSHIFT_DEV_NAMESPACE: - # Umgebungsname für die DEV-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_DEV_ENV: dev - # URL zur Anzeige von der Dev in den Gitlab-Enviroments - # Wird auch für die Selenium Test Pipeline der Stage integration-test verwendet, falls diese konfiguriert ist - OPENSHIFT_DEV_URL: http://$OPENSHIFT_APP_NAME-$OPENSHIFT_DEV_ENV-$OPENSHIFT_DEV_NAMESPACE.$OPENSHIFT_APP_DOMAIN_LOCAL/ - # Openshift Namespace der TEST-Umgebung. - OPENSHIFT_TEST_NAMESPACE: - # Umgebungsname für die TEST-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_TEST_ENV: test - # URL zur Anzeige von der Test in den Gitlab-Enviroments - # Wird auch für die Selenium Test Pipeline der Stage system-test verwendet, falls diese konfiguriert ist - OPENSHIFT_TEST_URL: http://$OPENSHIFT_APP_NAME-$OPENSHIFT_TEST_ENV-$OPENSHIFT_TEST_NAMESPACE.$OPENSHIFT_APP_DOMAIN_LOCAL/ - # Openshift Namespace der PROD-Umgebung. - OPENSHIFT_PROD_NAMESPACE: - # Umgebungsname für die PROD-Umgebung (wird an DC, BC, CM an den Namen angehängt). - OPENSHIFT_PROD_ENV: prod - # URL zur Anzeige von der Prod in den Gitlab-Enviroments - OPENSHIFT_PROD_URL: - # Pfad des GitLab-Projekts, welches Selenium-Tests für die Stage integration-test durchführen soll (z.B.: ccse/cicd/cicd-migration/mig-selenium-tests) - # Wenn auf undefined gesetzt, wird keine Pipeline getriggert - INTEGRATION_TEST_PROJECT_PATH: &INTEGRATION_TEST_PROJECT_PATH undefined - # Branch des Test-Projekts, auf dem die Pipeline der Selenium Tests für die Stage integration-test gestartet werden soll, z. B. "develop" - # Wenn auf undefined gesetzt, wird keine Pipeline getriggert - INTEGRATION_TEST_PROJECT_TARGET_BRANCH: "undefined" - # Pfad des GitLab-Projekts, welches Selenium-Tests für die Stage system-test durchführen soll (z.B.: ccse/cicd/cicd-migration/mig-selenium-tests) - # Wenn auf undefined gesetzt, wird keine Pipeline getriggert - SYSTEM_TEST_PROJECT_PATH: &SYSTEM_TEST_PROJECT_PATH undefined - # Branch des Test-Projekts, auf dem die Pipeline der Selenium Tests für die Stage system-test gestartet werden soll, z. B. "main" - # Wenn auf undefined gesetzt, wird keine Pipeline getriggert - SYSTEM_TEST_PROJECT_TARGET_BRANCH: "undefined" - -# Legt das Verhalten in Pipeline in verschiedenen Fällen fest: -# 1. Der Auslöser ist ein Bot und es ist keine Tag-Pipeline: -# Die Pipeline wird nicht gestartet, da es sich hierbei um eine Versionsänderung duch das Maven Release Plugin handelt -# 2. DO_RELEASE ist nicht auf "true" und der Commit kommt von einem Branch oder Tag: -# Das ist der "Normalfall" und die Pipeline wird mit allen notwendigen Variablen gestartet -# 3. DO_RELEASE ist auf "true" und der Commit kommt von einem Branch oder Tag: -# Die Pipeline wird ohne Variablen gestartet, da sie lediglich einen Release durchführen soll -workflow: - rules: - - if: $CI_PIPELINE_SOURCE == "schedule" - variables: - DISABLE_SELENIUM: "true" - DISABLE_OPENSHIFT: "true" - DISABLE_DEPLOYMENT_ARTIFACTORY: "true" - - if: $GITLAB_USER_LOGIN =~ /^project_/ && $CI_COMMIT_TAG == null - when: never - - if: $DO_RELEASE != "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) - - - if: $DO_RELEASE == "true" && ($CI_COMMIT_TAG || $CI_COMMIT_BRANCH) - variables: - DISABLE_OPENSHIFT: "true" - DISABLE_SONAR: "true" - DISABLE_OWASP: "true" - - -include: - # Für Branch Pipelines - - template: "Workflows/Branch-Pipelines.gitlab-ci.yml" - - - project: "ccse/cicd/gitlab-runner-templates" - ref: "main-2.x" - file: - # Gitlab AutoDevOps Secret Detection (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-secret-detection) - - "SecretDetection.gitlab-ci.yml" - # Gitlab AutoDevOps SAST (siehe: https://docs.gitlab.com/ee/topics/autodevops/stages.html#auto-sast) - - "SAST.gitlab-ci.yml" - # Maven Build (stage: build), Unit-Tests (stage: test) und Artifactory Deployment (stage: deploy-dev) - - "Maven.gitlab-ci.yml" - # Codecheck Analyse - - "Codecheck.gitlab-ci.yml" - # Npm Build (stage: build) - - "Npm.gitlab-ci.yml" - # Openshift Image Build über S2I und Deployment in Dev (stage: deploy-dev) - - "Openshift-CI.gitlab-ci.yml" - # Deployment (Rollout) in Test (stage: deploy-test) und in Prod (stage: deploy-prod) - - "Openshift-CD.gitlab-ci.yml" - # Maven Release Plugin - - "MavenRelease.gitlab-ci.yml" - # Include Sonarqube Step - - "SonarQube.gitlab-ci.yml" - # owasp dependency check - - OWASP-Dependency-Check.gitlab-ci.yml - -# Der Dependency-Check analysiert verwendete Libraries auf bekannte Schwachstellen. -# SUPPRESSION_FILE kann erweitert werden um eine eigene Custom-Suppressions-Datei, -# indem diese mit Leerzeichen getrennt dahinter geschrieben werden. -dependency-check: - variables: - SUPPRESSION_FILE: "--suppression https://ccse.pages.muenchen.de/refarch-security/frontend/suppression-cves.xml" - -# Führt Selenium Tests im Projekt TEST_PROJECT_PATH auf dem Branch TEST_PROJECT_TARGET_BRANCH aus -selenium-integration-test: - stage: integration-test - rules: - - if: $DISABLE_SELENIUM - when: never - - if: $CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH && $INTEGRATION_TEST_PROJECT_TARGET_BRANCH != "undefined" && $INTEGRATION_TEST_PROJECT_PATH != "undefined" - allow_failure: false - resource_group: deploy-cap - variables: - BASE_URL: $OPENSHIFT_DEV_URL - trigger: - project: *INTEGRATION_TEST_PROJECT_PATH - branch: $INTEGRATION_TEST_PROJECT_TARGET_BRANCH - strategy: depend - - -# Führt Selenium Tests im Projekt TEST_PROJECT_PATH auf dem Branch TEST_PROJECT_TARGET_BRANCH aus -selenium-system-test: - stage: system-test - rules: - - if: $DISABLE_SELENIUM - when: never - - if: $CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH && $SYSTEM_TEST_PROJECT_TARGET_BRANCH != "undefined" && $SYSTEM_TEST_PROJECT_PATH != "undefined" - when: manual - allow_failure: false - variables: - BASE_URL: $OPENSHIFT_TEST_URL - resource_group: promote-cap-test - trigger: - project: *SYSTEM_TEST_PROJECT_PATH - branch: $SYSTEM_TEST_PROJECT_TARGET_BRANCH - strategy: depend