From 03ed30acf306fb006f3e45cef8c41e6eb0ef38c7 Mon Sep 17 00:00:00 2001 From: valentin_lechner Date: Thu, 30 Jan 2020 17:02:13 +0100 Subject: [PATCH] Added Jenkinsfile and sonarfile --- .scannerwork/.sonar_lock | 0 .scannerwork/report-task.txt | 6 ++ Jenkinsfile | 36 +++++++ sonar-project.properties | 193 +++++++++++++++++++++++++++++++++++ 4 files changed, 235 insertions(+) create mode 100644 .scannerwork/.sonar_lock create mode 100644 .scannerwork/report-task.txt create mode 100644 Jenkinsfile create mode 100644 sonar-project.properties diff --git a/.scannerwork/.sonar_lock b/.scannerwork/.sonar_lock new file mode 100644 index 0000000..e69de29 diff --git a/.scannerwork/report-task.txt b/.scannerwork/report-task.txt new file mode 100644 index 0000000..83b099c --- /dev/null +++ b/.scannerwork/report-task.txt @@ -0,0 +1,6 @@ +projectKey=8008135-dev +serverUrl=http://localhost:9000 +serverVersion=7.9.2.30863 +dashboardUrl=http://localhost:9000/dashboard?id=8008135-dev +ceTaskId=AW_3GjJbtzrbd5O-L5Zw +ceTaskUrl=http://localhost:9000/api/ce/task?id=AW_3GjJbtzrbd5O-L5Zw diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..9efc871 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,36 @@ +#!/usr/bin/env groovy + +pipeline { + + stages { + stage ('checkout VCS') { + steps { + checkout scm + } + + stage ('compile') { + sh 'make' + } + + stage ('deploySONAR') { + sh 'sonar-scanner' + } + } + post { + unstable { + script { + notifier.sendMail("CI Build Job ${env.JOB_NAME} [${env.BUILD_NUMBER}] is unstable, please fix it in the near future", "**/*.log") + } + } + failure { + script { + notifier.sendMail("Error while run CI Build Job ${env.JOB_NAME} [${env.BUILD_NUMBER}]", "**/*.log") + } + } + fixed { + script { + notifier.sendMail("CI Build Job ${env.JOB_NAME} [${env.BUILD_NUMBER}] is stable again :-)", "**/*.log") + } + } + } +} diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..d3269e4 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,193 @@ +#******************************************************************************* +# +# FILE: sonar-project.properties.template +# +# USAGE: Einbindung in ein Projekt in der CI/CD Pipeline, das nach Sonar +# deployt wird & Anpassung der Variablen +# +# DESCRIPTION: Ein Temlate mithilfe dem SonarQube Projekteinstellungen +# \"ubergeben werden k\"onnen +# Diese Datei ist das Äquivalent der "Jenkins"- oder "Dockerfile" +# für SonarQube +# Anhand von, in dieser Datei spezifizierten Parametern, +# wird das Entwicklungsprojekt von SonarQube analysiert +# +# OPTIONS: - +# REQUIREMENTS: SonarQube/SonarCloud +# BUGS: Hoffentlich keine, bei Problemen bitte kontaktieren +# NOTES: +# AUTHOR: vlr +# ORGANIZATION: highQ +# CREATED: 30.01.2019 11:37:42 +# REVISION: 0.1 +#******************************************************************************* + + + +# Diese Datei ist das Äquivalent der "Jenkins"- oder "Dockerfile" für SonarQube +# Anhand in dieser Datei spezifizierter Parameter wird das Entwicklungsprojekt +# von SonarQube analysiert + +#*** Allgemeines ************************************************************* + + +# Host URL, muss angegeben werden +sonar.host.url=http://localhost:9000 + +# Default: (maven) +sonar.links.homepage=https://www.fuxxbau.net +# Default: (maven) +sonar.links.ci=http://jenkins.fuxxbau.net + +# Default: System Encoding +sonar.sourceEncoding=UTF-8 + +# sonar.organization=highQ +#******************************************************************************* + +#*** Debug ******************************************************************* +# M\"ogliche Werte: DEBUG, INFO +# Default: INFO +sonar.log.level=DEBUG + +# Ausgabe aller spezifizierten Einstellungen zur Scanner API in ein File +# sonar.scanner.dumpToFile=dump.txt + +# Stelle, an die vom Scanner die "report-task.txt" geschrieben wird +# Default: sonar.working.directory +# sonar.scanner.metadataFilePath= + +# Stelle in Logs dar, an welchen Stellen der Analyzer wv Zeit ben\"otigt +# Logs zu finden in workingDir/profiling/moduleKey-profiler.xml +# workingDir=.sonar/profiling (sonarscanner) +# bzw target/sonar/profiling (sonarscanner for maven) +# Default: false +# sonar.showProfiling= +# NOTE: There is the potential for this setting to expose sensitive information +# such as passwords if they are stored as server-side environment variables. +# sonar.verbose= +#******************************************************************************* + +#*** Projekt ***************************************************************** + +# Der einzigartige Key des Projekts (Maven Default: : +# Erlaubt sind hier Zahlen, Buchstaben, "-","_",".",":" +# mindestens ein char muss keine Zahl sein +# muss angegeben sein, entweder durch maven oder manuell +sonar.projectKey=8008135-dev + +# Hier kann entweder Login über einen Nutzer erstellt werden oder \"uber +# ein Login-Token (Weboberfläche -> My Account -> Security -> Generate Token) +# Wenn sonar.password leer ist wird sonar.login als Auth-Token interpretiert +# Alternativ: Anyone-Gruppe Analyse Rechte zuweisen (Serverseitig) +sonar.login=64a1e475ea960ebac8ac203223c59e61e9f7ed95 +# sonar.password= + +# Name, der in der Weboberfläche angezeigt wird +sonar.projectName=8008135-dev +# Default: (maven), sonst "not provided" +# sonar.projectVersion= +# Default: (maven) +# sonar.projectDescription= + +# Kann nicht früher als das letzte Datum der Analyse dieses Projekts in DB sein +# Default:Now. Angabe in yyyy-MM-dd +# sonar.projectDate= + +# Kann verwendet werden um zu bestimmen dass die Analyse des Projekts an +# anderer Stelle stattfindet +# ben\"otigt Schreibrechte f\"ur Erstellung von sonar.working.directory +# Default=./ +# sonar.projectBaseDir= + +#******************************************************************************* + + +# Max Zeit um auf Webservice Call zu warten (in sec, Default 60) +# Nützlich um auf Timeouts zu reagieren +# sonar.ws.timeout= + +#*** SCM ********************************************************************* + +# Das Plugin, das von SonarQube für das Abfragen von SCM Daten verwendet wird +# Default: Autodetect (-> svn, wenn .svn Ordner hier existiert; git wenn .git) +sonar.scm.provider=git + +# Standardm\"assig werden nur bei ver\"anderten Files blame Informationen geladen +# Wenn die Daten outdatet sind, kann man hier auf "true" stellen um upzudaten +# sonar.scm.forceReloadAll= + +# Standardm\"assig werden Dateien die vom SCM ignoriert werden (bsp .gitignore) +# bei der Analyse ebenfalls ignoriert. +# Wenn man diesen Wert hier auf true setzt, disabled man dieses Feature +# Default: false +# sonar.scm.exclusions.disabled= + +# Überschreiben der Revision +# Default: Provided von CI oder von source geraten +# sonar.scm.revision= + +# Default: (maven) +# sonar.links.issue= + +# Default: (maven) +# sonar.links.scm= + +# Comma Seperated Pfadliste für Generic Issue Reports +# sonar.externalIssuesReportPaths= + +#******************************************************************************* + + +#*** Build ******************************************************************* + +# Wenn weder sonar.sources noch sonar.tests gegeben: BaseDir(=./) +# Default: Wird aus Build Sys gelesen (Maven, Gradle, MSBuild). +sonar.sources=. +# Default: Wird aus Build Sys gelesen (Maven, Gradle, MSBuild). Sonst leer +# sonar.tests= + +# Habe ich nicht ganz einordnen k\"onnen, wof\"ur. +# Offizieller Text: +# The string passed with this property will be stored with the analysis and available in the results of api/project_analyses/search, thus allowing you to later identify a specific analysis and obtain its ID for use with api/project_analyses/set_baseline. +# sonar.buildString= + +#******************************************************************************* + + +#*** Analyse ***************************************************************** + +# Default:.scannerwork +# sonar.working.directory= + +# Hinzuf\"ugen von key-value Paaren zum Analysekontext (-> Webhooks) +# sonar.analysis.[Key001]= +# sonar.analysis.[Key002]= + +# Standardm\"assig gilt ein Code als dupliziert wenn mind. 100 Token des Codes +# gleich sind (über 10 Zeilen hinweg) +# Kann sprachenspezifisch überschrieben werden +# sonar.cpd.${language}.minumumtokens= +# sonar.cpd.${language}.minimumLines= + + +# Diese Parameter sorgen daf\"ur, dass Code zwischen Bl\"ocken nicht analysiert +# wird. Leider werden diese Parameter nicht offiziell unterst\"utzt +# https://community.sonarsource.com/t/how-to-set-sonar-issue-ignore-block-in-sonar-project-properties/10943/6 +# Offiziell unterst\"utzt wird nur eine globale Einstellung im Webinterface +# siehe: +# Administration->Configuration->General->Analysis Scope->Ignore Issues in Blocks +# Wird von einem SonarQube Entwickler als "Hack" bezeichnet, was ich nicht +# verstehe, es ist mmN legitim, hier Proj Spezifische Settings zu haben (oder zmd: zu haben wollen). +# Wahrscheinlich ist es auch m\"oglich, andere Einstellungen die im WebUI +# zu finden sind hier zu "hacken" +# sonar.issue.ignore.block=ignore-generated +# sonar.issue.ignore.block.ignore-generated.beginBlockRegexp=DA-ELSE +# sonar.issue.ignore.block.ignore-generated.endBlockRegexp=DA-END + +# Hier ein weiteres Beispiel, bei dem das ganze file von Analyse ausgeschlossen +# wird, wenn "@sonar-disable" im File vorkommt +# sonar.issue.ignore.allfile=ignore-file +# sonar.issue.ignore.allfile.ignore-file.fileRegexp=@sonar-disable + +#*******************************************************************************