Files
app-logger/Jenkinsfile
T
iparenteau fde4524f5a
Locusworks Team/app-logger/pipeline/head There was a failure building this commit
updated caching strategy
2026-09-02 12:23:30 -05:00

104 lines
3.0 KiB
Groovy

pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
disableConcurrentBuilds()
skipDefaultCheckout(true)
timestamps()
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Set version') {
steps {
script {
String branch = env.BRANCH_NAME
if (!branch) {
error('BRANCH_NAME is unavailable; this pipeline must run as a multibranch job')
}
env.DEPLOY_BUILD = 'false'
def releaseMatch = branch =~ /^release\/(\d+\.\d+\.\d+)$/
if (releaseMatch.matches()) {
env.BUILD_VERSION = "${releaseMatch[0][1]}.${env.BUILD_NUMBER}-RELEASE"
env.DEPLOY_BUILD = 'true'
} else if (branch == 'develop') {
env.BUILD_VERSION = "develop.${env.BUILD_NUMBER}-SNAPSHOT"
env.DEPLOY_BUILD = 'true'
} else {
String safeBranch = branch.replaceAll(/[^A-Za-z0-9._-]/, '-')
env.BUILD_VERSION = "0.0.${env.BUILD_NUMBER}-${safeBranch}-SNAPSHOT"
}
currentBuild.displayName = env.BUILD_VERSION
}
withMaven(maven: 'maven-3.9.16', globalMavenSettingsConfig: 'locusworks-settings') {
sh 'mvn -B org.codehaus.mojo:versions-maven-plugin:2.21.0:set -DgenerateBackupPoms=false -DnewVersion="$BUILD_VERSION"'
}
}
}
stage('Prepare OWASP cache') {
steps {
cache(caches: [[
$class: 'ArbitraryFileCache',
path: "${env.WORKSPACE}/dependency-check-data",
includes: '**/*',
excludes: ''
]]) {
withMaven(maven: 'maven-3.9.16', globalMavenSettingsConfig: 'locusworks-settings') {
sh 'mvn -B org.owasp:dependency-check-maven:13.0.0:update-only -DdataDirectory="$WORKSPACE/dependency-check-data"'
}
}
}
}
stage('Build and test') {
steps {
withMaven(maven: 'maven-3.9.16', globalMavenSettingsConfig: 'locusworks-settings') {
sh 'mvn -B clean verify -DdataDirectory="$WORKSPACE/dependency-check-data" -Dbuild.revision="$GIT_COMMIT"'
}
}
post {
always {
junit allowEmptyResults: true, testResults: '**/target/surefire-reports/*.xml'
}
success {
archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
archiveArtifacts artifacts: '**/target/site/jacoco/**', fingerprint: true
}
}
}
stage('Deploy') {
when {
expression { env.DEPLOY_BUILD == 'true' }
}
steps {
withMaven(maven: 'maven-3.9.16', globalMavenSettingsConfig: 'locusworks-settings') {
sh 'mvn -B deploy -DskipTests -Ddependency-check.skip=true -Dbuild.number="$BUILD_NUMBER" -Dbuild.revision="$GIT_COMMIT"'
}
}
}
}
post {
success {
echo "Published build ${env.BUILD_VERSION} successfully"
}
failure {
echo "Build ${env.BUILD_VERSION ?: env.BUILD_NUMBER} failed"
}
cleanup {
deleteDir()
}
}
}