54 lines
1.4 KiB
Groovy
54 lines
1.4 KiB
Groovy
pipeline {
|
|
agent any
|
|
options {
|
|
buildDiscarder(logRotator(numToKeepStr: "100"))
|
|
skipDefaultCheckout(true)
|
|
}
|
|
triggers {
|
|
pollSCM("*/10 * * * *")
|
|
}
|
|
environment {
|
|
SONAR_SCANNER_VERSION="4.7.0.2747"
|
|
SONAR_SCANNER_HOME="$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux"
|
|
PATH="$SONAR_SCANNER_HOME/bin:$PATH"
|
|
SONAR_SCANNER_OPTS="-server"
|
|
}
|
|
stages {
|
|
stage('Checkout') {
|
|
steps{
|
|
//cleanWs()
|
|
checkout scm
|
|
}
|
|
}
|
|
/*stage('Clean') {
|
|
steps {
|
|
withEnv(["PATH+RUST=$HOME/.cargo/bin"]) { // Cargo needs to be installed for the jenkins user
|
|
sh 'cargo clean'
|
|
}
|
|
}
|
|
}*/
|
|
stage('Build') {
|
|
steps {
|
|
withSonarQubeEnv(installationName: 'SQ Bib Watcher', envOnly: true) {
|
|
withEnv(["PATH+RUST=$HOME/.cargo/bin"]) {
|
|
sh 'cargo build --release'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// For this to work, edit sonar-scanner script to set use_embedded_jre=false
|
|
stage('SonarQube Analysis') {
|
|
steps {
|
|
withSonarQubeEnv(installationName: 'SQ Bib Watcher', envOnly: true) {
|
|
withEnv(["PATH+RUST=$HOME/.cargo/bin"]) {
|
|
sh """
|
|
SONAR_TOKEN="$SONAR_AUTH_TOKEN"
|
|
cargo clippy --message-format=json &> clippy-output.json
|
|
sonar-scanner -Dsonar.projectKey=bib-watcher -Dsonar.sources=. -Dsonar.host.url=http://grover.local:9000
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |