Merge branch 'feat/tbe_sonar' into 'master'

feat(tool-sonar): Add sonar-template for gradle

See merge request gilden/ci/gitlab-ci-templates!42
This commit is contained in:
Marcel Feix 2022-01-21 13:05:47 +00:00
commit dadcbc612c
15 changed files with 46 additions and 23 deletions

View File

@ -20,7 +20,7 @@ Dabei sind die Imagenamen der Container abhängig von den Branchnamen.
|| Siehe <<_container_publish, Container Publish>> |
|===
.sonar-template
.container-publish-snapshot
[source,yaml]
----
include::{sourcedir}/container-publish-snapshot.gitlab-ci.yml[]

View File

@ -16,12 +16,12 @@ Falls das Projekt aus mehreren Poms besteht, kann `before_script:` benutzt werde
|DOCKER_REGISTRY | Definiert die Registry an zu dem das Image veröffentlicht werden soll | $CI_REGISTRY_IMAGE
|DOCKER_REGISTRY_USER | Definiert den User der benutzt werden soll | $CI_REGISTRY_USER
|DOCKER_REGISTRY_PASSWORD | Definiert das Passwort des Benutzers | $CI_REGISTRY_PASSWORD
|EXTRA_ARGS | Weitere Argumente die an an den jeweiligen Job gegeben werden sollen. | ""
|EXTRA_ARGS | Weitere Argumente die an den jeweiligen Job gegeben werden sollen. | ""
|USE_VERSIONFILE | Wenn true, dann wird zur Versionierung das ./version file aus dem set-version tool verwendet | "false"
|ARTIFACT | Der Name des Versionfiles aus dem set-version tool | "version"
|===
.sonar-template
.container-publish
[source,yaml]
----
include::{sourcedir}/container-publish.gitlab-ci.yml[]

View File

@ -4,11 +4,11 @@
Kopiert Daten mithilfe von scp aus dem Repo auf ein Deployment-System.
Dort wird über SSH Docker-compose up ausgeführt.
Für die SSH Verbindung muss ein Private-Key in den CI-CD variablen hinter dem Namen $SSH_PRIVATE_KEY abgelegt werden.
Für die SSH Verbindung muss ein Private-Key in den CI-CD Variablen unter dem Namen $SSH_PRIVATE_KEY abgelegt werden.
Wenn bereits andere SSH Keys vorhanden sind kann SSH_PRIVATE_KEY_DEPLOY in den Varibalen überschrieben werden.
Um die Compose-Files zu parametrisieren kann ein .env File benutzt werden.
Dieses sollte mit einem Skript das hinter der variable ENV_SETUP_FILE hinterlegt ist erstellt werden.
Dieses sollte mit einem Skript das unter der Variable ENV_SETUP_FILE hinterlegt ist erstellt werden.
.env File sollten nicht in der Repo liegen da keine Passwörter in der Repo liegen sollten.
.Beispiel für ein setup_env.sh
@ -29,7 +29,7 @@ echo SOME_PASSWORD="$SOME_PASSWORD" >>.env
|Name |Description | Default Value
| SSH_PRIVATE_KEY_DEPLOY
| Private key der zugriff auf den Deployment Server hat.
| Private key der Zugriff auf den Deployment Server hat.
| $SSH_PRIVATE_KEY (In den CI-CD variablen)
| SSH_URL
@ -45,8 +45,8 @@ echo SOME_PASSWORD="$SOME_PASSWORD" >>.env
| "$CI_REGISTRY"
| ENV_SETUP_FILE
| Falls ein .env file benutzt werden soll kann es mit einem sh script erstellt werden.
Secrets sollten nicht in der Repository liegen sondern in den CI-CD variablen der Repository settings.
| Falls ein .env file benutzt werden soll, kann es mit einem sh script erstellt werden.
Secrets sollten nicht in der Repository liegen, sondern in den CI-CD Variablen der Repository settings.
| "setup_env.sh"
| SCP_DESTINATION

View File

@ -2,7 +2,7 @@
= Gradle-build-template
Diese Template läd die Dependencies herunter und das Projekt.
Dieses Template lädt die Dependencies herunter und baut das Projekt.
Die Ergebnisse werden als Artifact gespeichert.
.Variables

View File

@ -10,7 +10,7 @@ Die Ergebnisse werden als Artifact gespeichert.
|Name |Description | Default Value
|===
.gradle-build-template
.gradle-test-template
[source,yaml]
----
include::{sourcedir}/gradle-test-template.gitlab-ci.yml[]

View File

@ -2,7 +2,7 @@
= maven-build-template
Diese Template Baut die .jar Files und speichert die Ergebnisse als Artifact.
Dieses Template baut die .jar Files und speichert die Ergebnisse als Artifact.
.Variables
|===

View File

@ -2,8 +2,8 @@
= maven-dependencies-template
Dieses Template läd die Maven Abhängigkeiten des Projekts runter.
Bitte den Cache hinzufügen. Siehe xref:Generel-Veriablen[Generelle Veriablen]
Dieses Template lädt die Maven Abhängigkeiten des Projekts runter.
Bitte den Cache hinzufügen. Siehe xref:Generel-Variablen[Generelle Variablen]
.Variables
|===

View File

@ -2,7 +2,7 @@
= npm-build-template
Dieses Template baut das NPM projekt und speichert die Ergebnisse als Artifact..
Dieses Template baut das NPM projekt und speichert die Ergebnisse als Artifact.
.Variables
|===

View File

@ -3,7 +3,7 @@
= npm-dependencies-template
Dieses Template läd die NPM Abhängigkeiten des Projekts runter.
Bitte den Cache hinzufügen. Siehe xref:Generel-Veriablen[Generelle Veriablen]
Bitte den Cache hinzufügen. Siehe xref:Generel-Variablen[Generelle Variablen]
.Variables
|===

View File

@ -2,7 +2,7 @@
= npm-lint-template
Dieses Template durchläuft den Linter das NPM projekts.
Dieses Template durchläuft den Linter des NPM Projekts.
.Variables
|===

View File

@ -2,7 +2,7 @@
= npm-test-template
Dieses Template baut das NPM projekt.
Dieses Template baut das NPM Projekt.
.Variables
|===

View File

@ -2,7 +2,7 @@
= Publish-Image-jib
Baut mithilfe von jib ein Docker Image und läd es in der Docker Registry des Projekt hoch.
Baut mithilfe von jib ein Docker Image und läd es in die Docker Registry des Projekts hoch.
Dieser Schritt wird nur ausgeführt, wenn ein Tag gesetzt wird.
.Variables

View File

@ -3,7 +3,7 @@
= Dokumentation-Tool-template
Das Dokumentation-Tool template.
Mehr Details und die Variablendokumentation sind zu finden hier: https://gitlab.exxcellent.de/gilden/ci/exxcellent-documentation-tool[Gilde CI/CD: exxcellent-documentation-tool].
Mehr Details und die Variablendokumentation sind hier zu finden: https://gitlab.exxcellent.de/gilden/ci/exxcellent-documentation-tool[Gilde CI/CD: exxcellent-documentation-tool].
.dokumentation-tool
[source,yaml]

View File

@ -3,7 +3,7 @@
= sonar-template
Ruft den Sonar Job für das Projekt auf.
Mehr Details zu finden hier: https://gitlab.exxcellent.de/gilden/ci/exxcellent-sonar-tool[Gilde CI/CD: exxcellent-sonar-tool].
Mehr Details sind hier zu finden: https://gitlab.exxcellent.de/gilden/ci/exxcellent-sonar-tool[Gilde CI/CD: exxcellent-sonar-tool].
.Variables
|===
@ -15,6 +15,8 @@ Mehr Details zu finden hier: https://gitlab.exxcellent.de/gilden/ci/exxcellent-s
(Es wird dann standardmäßig der Maven project.name verwendet)
|SONAR_EXCLUSIONS | Files die Sonar ausgeschlossen werden |"**/target/**,**/src/test/**"
|SONAR_SKIP_BUILD_BREAKER | Definiert ob der Build Breaker übersprungen werden soll | "true"
|SONAR_QUERY_MAX_ATTEMPTS_BUILD_BREAKER | Maximale Anzahl an Anfragen, um den Sonar-Report zu erhalten | "30"
|SONAR_QUERY_INTERVAL_BUILD_BREAKER | Zeit in Millisekunden zwischen 2 Anfragen, um den Sonar-Report zu erhalten | "10000"
|===

View File

@ -1,12 +1,17 @@
.sonar-template:
.sonar-template-common:
stage: test
image: $MAVEN_IMAGE
variables:
SONAR_HOST_URL: http://sonar7.exxcellent.de/sonar7
SONAR_PROJECT_KEY: ""
SONAR_PROJECT_NAME: ""
SONAR_EXCLUSIONS: "**/target/**,**/src/test/**"
SONAR_SKIP_BUILD_BREAKER: "true"
SONAR_QUERY_MAX_ATTEMPTS_BUILD_BREAKER: "30"
SONAR_QUERY_INTERVAL_BUILD_BREAKER: "10000"
.sonar-template:
extends: .sonar-template-common
image: $MAVEN_IMAGE
script:
- mvn $MAVEN_CLI_OPTS test sonar:sonar
"-Dsonar.host.url=$SONAR_HOST_URL"
@ -15,3 +20,19 @@
"-Dsonar.projectName=$SONAR_PROJECT_NAME"
"-Dsonar.exclusions=$SONAR_EXCLUSIONS"
"-Dsonar.buildbreaker.skip=$SONAR_SKIP_BUILDBREAKER"
"-Dsonar.buildbreaker.queryMaxAttempts=$SONAR_QUERY_MAX_ATTEMPTS_BUILD_BREAKER"
"-Dsonar.buildbreaker.queryInterval=$SONAR_QUERY_INTERVAL_BUILD_BREAKER"
.sonar-template-gradle:
extends: .sonar-template-common
image: $GRADLE_IMAGE
script:
- ./gradlew $GRADLE_OPTS sonarqube
"-Dsonar.host.url=$SONAR_HOST_URL"
"-Dsonar.login=$SONAR_TOKEN"
"-Dsonar.projectKey=$SONAR_PROJECT_KEY"
"-Dsonar.projectName=$SONAR_PROJECT_NAME"
"-Dsonar.exclusions=$SONAR_EXCLUSIONS"
"-Dsonar.buildbreaker.skip=$SONAR_SKIP_BUILDBREAKER"
"-Dsonar.buildbreaker.queryMaxAttempts=$SONAR_QUERY_MAX_ATTEMPTS_BUILD_BREAKER"
"-Dsonar.buildbreaker.queryInterval=$SONAR_QUERY_INTERVAL_BUILD_BREAKER"