Newer
Older
pipeline {
agent any
environment {
scannerHome = tool 'SonarQube Scanner'
}
options {
buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
}
tools {
// Install the Maven version configured as "M3" and add it to the path.
maven "/usr/share/maven"
steps {
milestone 1
withSonarQubeEnv('SonarQube Production') {
sh "mvn -Dmaven.test.failure.ignore=true clean test"
}
}
}
stage('Evaluate') {
steps {
junit(testResults: 'target/test-results/test/**/*.xml', healthScaleFactor: 100)
jacoco(execPattern: 'target/jacoco/test.exec', sourcePattern: 'src/main/java', sourceInclusionPattern: '**/*.java')
sh "mvn -Dsonar.projectName=GitSearch -Dsonar.projectKey=GITSEARCH -Dsonar.coverage.jacoco.xmlReportPaths=target/jacoco/test/jacoco.xml jacoco:report sonar:sonar"
post {
failure {
notifyByEmail("Failure");
}
unstable {
notifyByEmail("Unstable");
}
fixed {
notifyByEmail("Fixed");
}
}
}
void notifyByEmail(String reason) {
def mailRecipients = "michael.breu@arctis.at"
emailext (
subject: reason + ": Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
body: '''${SCRIPT, template="groovy-html.template"}''',
mimeType: 'text/html',
recipientProviders: [[$class: 'CulpritsRecipientProvider']]
)
}