#!groovy pipeline { agent any // save some io during the build options { durabilityHint('PERFORMANCE_OPTIMIZED') } stages { stage("Parallel Stage") { parallel { stage("Build / Test - mvn latest - JDK8 - ubuntu") { agent { node { label 'ubuntu' } } steps { timeout( time: 180, unit: 'MINUTES' ) { mavenBuild( "jdk_1.8_latest", "maven_latest") } } } stage("Build / Test - mvn latest - JDK11 - ubuntu") { agent { node { label 'ubuntu' } } steps { timeout( time: 180, unit: 'MINUTES' ) { mavenBuild( "jdk_11_latest", "maven_latest") } } } stage("Build / Test - mvn latest - JDK8 - windowx") { agent { node { label 'Windows' } } steps { timeout( time: 180, unit: 'MINUTES' ) { mavenBuild( "jdk_1.8_latest", "maven_latest") } } } stage("Build / Test - mvn latest - JDK11 - windows") { agent { node { label 'Windows' } } steps { timeout( time: 180, unit: 'MINUTES' ) { mavenBuild( "jdk_11_latest", "maven_latest") } } } } } } } def mavenBuild(jdk, mvnName) { script { try { withMaven(jdk: "$jdk", maven: "$mvnName", publisherStrategy: 'EXPLICIT', mavenOpts: "-Xms2g -Xmx4g -Djava.awt.headless=true") { if (isUnix()) { sh "mvn -V clean install -Prun-its,embedded -B" } else { bat "mvn -V clean install -Prun-its,embedded -B" } } } finally { junit testResults: 'core-it-suite/target/surefire-reports/*.xml', allowEmptyResults: true } } }