Adds one more stage to allow run parallel builds
diff --git a/Jenkinsfile b/Jenkinsfile
index a19b852..b09440d 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -11,120 +11,122 @@
pollSCM 'H/15 * * * *'
}
stages {
- parallel {
- stage('JDK 11') {
- agent {
- docker {
- label 'ubuntu'
- image 'maven:3-jdk-11'
- args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
- reuseNode true
- }
- }
- stages {
- stage('Build') {
- steps {
- sh 'mvn -B clean package -DskipTests -DskipAssembly'
+ stage('Build of various JDKs') {
+ parallel {
+ stage('JDK 11') {
+ agent {
+ docker {
+ label 'ubuntu'
+ image 'maven:3-jdk-11'
+ args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
+ reuseNode true
}
}
- stage('Test') {
- steps {
- sh 'mvn -B test'
- step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
+ stages {
+ stage('Build') {
+ steps {
+ sh 'mvn -B clean package -DskipTests -DskipAssembly'
+ }
}
- post {
- always {
- junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
- junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ stage('Test') {
+ steps {
+ sh 'mvn -B test'
+ step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
+ }
+ post {
+ always {
+ junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
+ junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ }
}
}
}
}
- }
- stage('JDK 9') {
- agent {
- docker {
- label 'ubuntu'
- image 'maven:3-jdk-9'
- args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
- reuseNode true
- }
- }
- stages {
- stage('Build') {
- steps {
- sh 'mvn -B clean package -DskipTests -DskipAssembly'
+ stage('JDK 9') {
+ agent {
+ docker {
+ label 'ubuntu'
+ image 'maven:3-jdk-9'
+ args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
+ reuseNode true
}
}
- stage('Test') {
- steps {
- sh 'mvn -B test'
- step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
+ stages {
+ stage('Build') {
+ steps {
+ sh 'mvn -B clean package -DskipTests -DskipAssembly'
+ }
}
- post {
- always {
- junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
- junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ stage('Test') {
+ steps {
+ sh 'mvn -B test'
+ step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
+ }
+ post {
+ always {
+ junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
+ junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ }
}
}
}
}
- }
- stage('JDK 8') {
- agent {
- docker {
- label 'ubuntu'
- image 'maven:3-jdk-8'
- args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
- reuseNode true
- }
- }
- stages {
- stage('Build') {
- steps {
- sh 'mvn -B clean package -DskipTests -DskipAssembly'
+ stage('JDK 8') {
+ agent {
+ docker {
+ label 'ubuntu'
+ image 'maven:3-jdk-8'
+ args '-v $HOME/.m2:/root/.m2 -e MAVEN_OPTS="-Xmx1024m" -e USER=$USER'
+ reuseNode true
}
}
- stage('Test') {
- steps {
- sh 'mvn -B test'
- step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
- }
- post {
- always {
- junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
- junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ stages {
+ stage('Build') {
+ steps {
+ sh 'mvn -B clean package -DskipTests -DskipAssembly'
}
}
- }
- stage('Build Source & JavaDoc') {
- when {
- branch 'master'
- }
- steps {
- dir("local-snapshots-dir/") {
- deleteDir()
+ stage('Test') {
+ steps {
+ sh 'mvn -B test'
+ step([$class: 'JiraIssueUpdater', issueSelector: [$class: 'DefaultIssueSelector'], scm: scm])
}
- sh 'mvn -B source:jar javadoc:jar -DskipAssembbly'
- }
- }
- stage('Deploy Snapshot') {
- when {
- branch 'master'
- }
- steps {
- withCredentials([file(credentialsId: 'struts-custom-settings_xml', variable: 'CUSTOM_SETTINGS')]) {
- sh 'mvn -s \${CUSTOM_SETTINGS} deploy -skipAssembly'
+ post {
+ always {
+ junit(testResults: '**/surefire-reports/*.xml', allowEmptyResults: true)
+ junit(testResults: '**/failsafe-reports/*.xml', allowEmptyResults: true)
+ }
}
}
- }
- stage('Code Quality') {
- when {
- branch 'master'
+ stage('Build Source & JavaDoc') {
+ when {
+ branch 'master'
+ }
+ steps {
+ dir("local-snapshots-dir/") {
+ deleteDir()
+ }
+ sh 'mvn -B source:jar javadoc:jar -DskipAssembbly'
+ }
}
- steps {
- withCredentials([string(credentialsId: 'asf-struts-sonarcloud', variable: 'SONARCLOUD_TOKEN')]) {
- sh 'mvn sonar:sonar -DskipAssembly -Dsonar.projectKey=apache_struts -Dsonar.organization=apache -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONARCLOUD_TOKEN}'
+ stage('Deploy Snapshot') {
+ when {
+ branch 'master'
+ }
+ steps {
+ withCredentials([file(credentialsId: 'struts-custom-settings_xml', variable: 'CUSTOM_SETTINGS')]) {
+ sh 'mvn -s \${CUSTOM_SETTINGS} deploy -skipAssembly'
+ }
+ }
+ }
+ stage('Code Quality') {
+ when {
+ branch 'master'
+ }
+ steps {
+ withCredentials([string(credentialsId: 'asf-struts-sonarcloud', variable: 'SONARCLOUD_TOKEN')]) {
+ sh 'mvn sonar:sonar -DskipAssembly -Dsonar.projectKey=apache_struts -Dsonar.organization=apache -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${SONARCLOUD_TOKEN}'
+ }
}
}
}