blob: 79ad5b585d379fb1e9cf9bd330a6ebc0d829a101 [file] [log] [blame]
#!groovy
pipeline {
agent {
docker {
label 'ubuntu'
image 'maven:3-jdk-8'
args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
}
}
options {
buildDiscarder logRotator(daysToKeepStr: '14', numToKeepStr: '10')
timeout(80)
disableConcurrentBuilds()
}
triggers {
pollSCM 'H/15 * * * *'
}
stages {
stage('Build') {
steps {
sh 'mvn -B clean package -DskipTests -DskipAssembly'
}
}
stage('Test') {
steps {
sh 'mvn -B test'
step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
}
post {
always {
junit '**/target/surefire-reports/*.xml'
}
}
}
stage('Build Source & JavaDoc') {
when {
branch 'master'
}
dir("local-snapshots-dir/") {
deleteDir()
}
steps {
sh 'mvn -B source:jar javadoc:jar -DskipAssembbly'
}
}
// see https://cwiki.apache.org/confluence/display/INFRA/Multibranch+Pipeline+recipes#MultibranchPipelinerecipes-DeployingArtifacts
stage('Deploy Snapshot') {
when {
branch 'master'
}
steps {
sh 'mvn -DaltDeploymentRepository=snapshot-repo::default::file:./local-snapshots-dir deploy'
stash name: 'struts2-build-snapshots', includes: 'local-snapshots-dir/**'
}
}
stage('Upload Snapshot') {
when {
branch 'master'
}
steps {
dir("local-snapshots-dir/") {
deleteDir()
}
unstash name: 'struts2-build-snapshots'
sh 'mvn -f jenkins.pom -X -P deploy-snapshots wagon:upload'
}
}
}
}