diff --git a/documentation/chapters/templates/tool-sonar7.adoc b/documentation/chapters/templates/tool-sonar7.adoc index f838784..a642419 100644 --- a/documentation/chapters/templates/tool-sonar7.adoc +++ b/documentation/chapters/templates/tool-sonar7.adoc @@ -1,6 +1,6 @@ :sourcedir: ../../../ -= sonar-template += Sonar 7 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]. diff --git a/documentation/chapters/templates/tool-sonar8.adoc b/documentation/chapters/templates/tool-sonar8.adoc new file mode 100644 index 0000000..1e32ca6 --- /dev/null +++ b/documentation/chapters/templates/tool-sonar8.adoc @@ -0,0 +1,28 @@ +:sourcedir: ../../../ + += Sonar 8 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]. + +.Variables +|=== +|Name |Description | Default Value +|SONAR_HOST_URL | Die URL des eXXcellent sonar servers | https://sonar.exxcellent.de/sonar8 +|SONAR_PROJECT_KEY | Der Sonar-Projekt-Key. | "" +|SONAR_PROJECT_NAME | Der Sonar-Projekt-Name. | "" (Es wird dann standardmäßig der Maven project.name verwendet) +|SONAR_EXCLUSIONS | Von Sonar auszuschließende Bereiche | **/target/**,**/src/test/** +|GRADLE_CLI_OPTS | Zusätzliche CLI Opts für Gradle | "" +|SONAR_QUALITYGATE_WAIT | Definiert, ob auf das Quality-Gate gewartet werden soll. Muss auf True gesetzt werden damit das Quality gate beachtet wird. Wenn das Quality-Gate beachtet werden aber die Pipeline nicht Fehlschlagen soll empfehlen das Flag `allow_failure` auf `true` zu setzen. | true +|SONAR_QUALITYGATE_TIMEOUT | Zeit bis zum Timeout der Quality gate abfrage | 10000 + +|=== + +TIP: Der SONAR_TOKEN String kann über den persönlichen User Bereich in Sonar unter dem Tab _Security_ erzeugt werden. +Ein technischer User ist aktuell nicht möglich. + +.sonar-template +[source,yaml] +---- +include::{sourcedir}/tool-sonar8.gitlab-ci.yml[] +---- diff --git a/tool-sonar8.gitlab-ci.yml b/tool-sonar8.gitlab-ci.yml new file mode 100644 index 0000000..2b0210d --- /dev/null +++ b/tool-sonar8.gitlab-ci.yml @@ -0,0 +1,35 @@ +.sonar-template-common: + stage: test + variables: + SONAR_HOST_URL: https://sonar.exxcellent.de/sonar8 + SONAR_PROJECT_KEY: "" + SONAR_PROJECT_NAME: "" + SONAR_EXCLUSIONS: "**/target/**,**/src/test/**" + SONAR_QUALITYGATE_WAIT: "true" + SONAR_QUALITYGATE_TIMEOUT: "10000" + +.sonar-template: + extends: .sonar-template-common + image: $MAVEN_IMAGE + script: + - mvn $MAVEN_CLI_OPTS test sonar:sonar + "-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.qualitygate.wait=$SONAR_QUALITYGATE_WAIT" + "-Dsonar.qualitygate.timeout=$SONAR_QUALITYGATE_TIMEOUT" + +.sonar-template-gradle: + extends: .sonar-template-common + image: $GRADLE_IMAGE + script: + - ./gradlew $GRADLE_OPTS $GRADLE_CLI_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.qualitygate.wait=$SONAR_QUALITYGATE_WAIT" + "-Dsonar.qualitygate.timeout=$SONAR_QUALITYGATE_TIMEOUT"