From d73d3644e020cb66d22bd86872ddc23f38551334 Mon Sep 17 00:00:00 2001 From: "AO Industries, Inc" Date: Sun, 3 Sep 2023 21:09:29 +0000 Subject: [PATCH] =?UTF-8?q?Default=20JDK=20build=20in=20target/=20with=20o?= =?UTF-8?q?thers=20in=20target-jdk-=E2=80=A6/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is so Jenkins builds are reproducible with local dev builds, since MANIFEST.MF currently has target/ path within Include-Resource --- .gitignore | 1 + Jenkinsfile | 48 ++++++++++++++++++++++++------------------------ book/Jenkinsfile | 48 ++++++++++++++++++++++++------------------------ 3 files changed, 49 insertions(+), 48 deletions(-) diff --git a/.gitignore b/.gitignore index e1b269b..4093ccd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ target/ +target-jdk-*/ .m2/ *@tmp/ pom.xml.tag diff --git a/Jenkinsfile b/Jenkinsfile index 1ceb562..d12a279 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -484,7 +484,7 @@ def mvnCommon = "-Dstyle.color=always -N -U -Pjenkins,POST-SNAPSHOT${extraProf def buildPhases = 'clean process-test-classes' // Determine nice command prefix or empty string for none -def niceCmd = (nice == 0) ? '' : "nice -n${nice} " +def niceCmd = (nice == 0) ? '' : "nice -n$nice " // // Scripts pulled out of pipeline due to "General error during class generation: Method too large" @@ -517,21 +517,21 @@ fi } // Temporarily move surefire-reports before withMaven to avoid duplicate logging of test results -def moveSurefireReportsScript(deployJdk) { +def moveSurefireReportsScript() { return """#!/bin/bash -if [ -d target/jdk-$deployJdk/surefire-reports ] +if [ -d target/surefire-reports ] then - mv target/jdk-$deployJdk/surefire-reports target/jdk-$deployJdk/surefire-reports.do-not-report-twice + mv target/surefire-reports target/surefire-reports.do-not-report-twice fi """ } // Restore surefire-reports -def restoreSurefireReportsScript(deployJdk) { +def restoreSurefireReportsScript() { return """#!/bin/bash -if [ -d target/jdk-$deployJdk/surefire-reports.do-not-report-twice ] +if [ -d target/surefire-reports.do-not-report-twice ] then - mv target/jdk-$deployJdk/surefire-reports.do-not-report-twice target/jdk-$deployJdk/surefire-reports + mv target/surefire-reports.do-not-report-twice target/surefire-reports fi """ } @@ -655,7 +655,7 @@ pipeline { } def result = lastBuild.result; if (result != hudson.model.Result.SUCCESS) { - error("${currentWorkflowJob.fullName}: Aborting due to dependency last build not successful: ${upstreamWorkflowJob.fullName} #${lastBuild.number} is ${result}") + error("${currentWorkflowJob.fullName}: Aborting due to dependency last build not successful: ${upstreamWorkflowJob.fullName} #${lastBuild.number} is $result") } } } @@ -785,11 +785,11 @@ pipeline { dir(projectDir) { withMaven( maven: maven, - mavenOpts: "${jdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${jdk}", + mavenOpts: "${jdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$jdk", jdk: "jdk-$jdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=target/jdk-$jdk $buildPhases" + sh "${niceCmd}$MVN_CMD $mvnCommon ${jdk == deployJdk ? '' : "-Dalt.build.dir=target-jdk-$jdk "}$buildPhases" } } script { @@ -797,8 +797,8 @@ pipeline { if (testWhenExpression.call()) { testJdks.each() {testJdk -> if (testJdk != jdk) { - sh "${niceCmd}rm $projectDir/target/jdk-$jdk-$testJdk -rf" - sh "${niceCmd}cp -al $projectDir/target/jdk-$jdk $projectDir/target/jdk-$jdk-$testJdk" + sh "${niceCmd}rm $projectDir/target-jdk-$jdk-$testJdk -rf" + sh "${niceCmd}cp -al $projectDir/target${jdk == deployJdk ? '' : "-jdk-$jdk"} $projectDir/target-jdk-$jdk-$testJdk" } } } @@ -832,7 +832,7 @@ pipeline { stages { stage('Test') { environment { - buildDir = "${(testJdk == jdk) ? ('target/jdk-' + jdk) : ('target/jdk-' + jdk + '-' + testJdk)}" + buildDir = "target${(testJdk == jdk) ? (jdk == deployJdk ? '' : "-jdk-$jdk") : ("-jdk-$jdk-$testJdk")}" coverage = "${(jdk == deployJdk && testJdk == deployJdk && fileExists(projectDir + '/src/main/java') && fileExists(projectDir + '/src/test')) ? '-Pcoverage' : '-P!coverage'}" testGoals = "${(coverage == '-Pcoverage') ? 'jacoco:prepare-agent surefire:test jacoco:report' : 'surefire:test'}" } @@ -840,8 +840,8 @@ pipeline { dir(projectDir) { withMaven( maven: maven, - mavenOpts: "${testJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${jdk}", + mavenOpts: "${testJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$jdk", jdk: "jdk-$testJdk" ) { sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=$buildDir $coverage $testGoals" @@ -933,17 +933,17 @@ void deploySteps(niceCmd, projectDir, deployJdk, maven, mavenOpts, mavenOptsJdk1 sh checkTreeUnmodifiedScriptBuild(niceCmd) dir(projectDir) { // Temporarily move surefire-reports before withMaven to avoid duplicate logging of test results - sh moveSurefireReportsScript(deployJdk) + sh moveSurefireReportsScript() withMaven( maven: maven, - mavenOpts: "${deployJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${deployJdk}", + mavenOpts: "${deployJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$deployJdk", jdk: "jdk-$deployJdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Pnexus,jenkins-deploy,publish -Dalt.build.dir=target/jdk-$deployJdk deploy" + sh "${niceCmd}$MVN_CMD $mvnCommon -Pnexus,jenkins-deploy,publish deploy" } // Restore surefire-reports - sh restoreSurefireReportsScript(deployJdk) + sh restoreSurefireReportsScript() } // Make sure working tree not modified by deploy sh checkTreeUnmodifiedScriptDeploy(niceCmd) @@ -957,11 +957,11 @@ void sonarQubeAnalysisSteps(niceCmd, projectDir, deployJdk, maven, mavenOpts, ma withSonarQubeEnv(installationName: 'AO SonarQube') { withMaven( maven: maven, - mavenOpts: "${deployJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${deployJdk}", + mavenOpts: "${deployJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$deployJdk", jdk: "jdk-$deployJdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=target/jdk-$deployJdk -Dsonar.coverage.jacoco.xmlReportPaths=target/jdk-$deployJdk/site/jacoco/jacoco.xml sonar:sonar" + sh "${niceCmd}$MVN_CMD $mvnCommon -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml sonar:sonar" } } } diff --git a/book/Jenkinsfile b/book/Jenkinsfile index fa9ee5b..a1fbbe6 100644 --- a/book/Jenkinsfile +++ b/book/Jenkinsfile @@ -489,7 +489,7 @@ def mvnCommon = "-Dstyle.color=always -N -U -Pjenkins,POST-SNAPSHOT${extraProf def buildPhases = 'clean process-test-classes' // Determine nice command prefix or empty string for none -def niceCmd = (nice == 0) ? '' : "nice -n${nice} " +def niceCmd = (nice == 0) ? '' : "nice -n$nice " // // Scripts pulled out of pipeline due to "General error during class generation: Method too large" @@ -522,21 +522,21 @@ fi } // Temporarily move surefire-reports before withMaven to avoid duplicate logging of test results -def moveSurefireReportsScript(deployJdk) { +def moveSurefireReportsScript() { return """#!/bin/bash -if [ -d target/jdk-$deployJdk/surefire-reports ] +if [ -d target/surefire-reports ] then - mv target/jdk-$deployJdk/surefire-reports target/jdk-$deployJdk/surefire-reports.do-not-report-twice + mv target/surefire-reports target/surefire-reports.do-not-report-twice fi """ } // Restore surefire-reports -def restoreSurefireReportsScript(deployJdk) { +def restoreSurefireReportsScript() { return """#!/bin/bash -if [ -d target/jdk-$deployJdk/surefire-reports.do-not-report-twice ] +if [ -d target/surefire-reports.do-not-report-twice ] then - mv target/jdk-$deployJdk/surefire-reports.do-not-report-twice target/jdk-$deployJdk/surefire-reports + mv target/surefire-reports.do-not-report-twice target/surefire-reports fi """ } @@ -660,7 +660,7 @@ pipeline { } def result = lastBuild.result; if (result != hudson.model.Result.SUCCESS) { - error("${currentWorkflowJob.fullName}: Aborting due to dependency last build not successful: ${upstreamWorkflowJob.fullName} #${lastBuild.number} is ${result}") + error("${currentWorkflowJob.fullName}: Aborting due to dependency last build not successful: ${upstreamWorkflowJob.fullName} #${lastBuild.number} is $result") } } } @@ -790,11 +790,11 @@ pipeline { dir(projectDir) { withMaven( maven: maven, - mavenOpts: "${jdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${jdk}", + mavenOpts: "${jdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$jdk", jdk: "jdk-$jdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=target/jdk-$jdk $buildPhases" + sh "${niceCmd}$MVN_CMD $mvnCommon ${jdk == deployJdk ? '' : "-Dalt.build.dir=target-jdk-$jdk "}$buildPhases" } } script { @@ -802,8 +802,8 @@ pipeline { if (testWhenExpression.call()) { testJdks.each() {testJdk -> if (testJdk != jdk) { - sh "${niceCmd}rm $projectDir/target/jdk-$jdk-$testJdk -rf" - sh "${niceCmd}cp -al $projectDir/target/jdk-$jdk $projectDir/target/jdk-$jdk-$testJdk" + sh "${niceCmd}rm $projectDir/target-jdk-$jdk-$testJdk -rf" + sh "${niceCmd}cp -al $projectDir/target${jdk == deployJdk ? '' : "-jdk-$jdk"} $projectDir/target-jdk-$jdk-$testJdk" } } } @@ -837,7 +837,7 @@ pipeline { stages { stage('Test') { environment { - buildDir = "${(testJdk == jdk) ? ('target/jdk-' + jdk) : ('target/jdk-' + jdk + '-' + testJdk)}" + buildDir = "target${(testJdk == jdk) ? (jdk == deployJdk ? '' : "-jdk-$jdk") : ("-jdk-$jdk-$testJdk")}" coverage = "${(jdk == deployJdk && testJdk == deployJdk && fileExists(projectDir + '/src/main/java') && fileExists(projectDir + '/src/test')) ? '-Pcoverage' : '-P!coverage'}" testGoals = "${(coverage == '-Pcoverage') ? 'jacoco:prepare-agent surefire:test jacoco:report' : 'surefire:test'}" } @@ -845,8 +845,8 @@ pipeline { dir(projectDir) { withMaven( maven: maven, - mavenOpts: "${testJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${jdk}", + mavenOpts: "${testJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$jdk", jdk: "jdk-$testJdk" ) { sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=$buildDir $coverage $testGoals" @@ -938,17 +938,17 @@ void deploySteps(niceCmd, projectDir, deployJdk, maven, mavenOpts, mavenOptsJdk1 sh checkTreeUnmodifiedScriptBuild(niceCmd) dir(projectDir) { // Temporarily move surefire-reports before withMaven to avoid duplicate logging of test results - sh moveSurefireReportsScript(deployJdk) + sh moveSurefireReportsScript() withMaven( maven: maven, - mavenOpts: "${deployJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${deployJdk}", + mavenOpts: "${deployJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$deployJdk", jdk: "jdk-$deployJdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Pnexus,jenkins-deploy,publish -Dalt.build.dir=target/jdk-$deployJdk deploy" + sh "${niceCmd}$MVN_CMD $mvnCommon -Pnexus,jenkins-deploy,publish deploy" } // Restore surefire-reports - sh restoreSurefireReportsScript(deployJdk) + sh restoreSurefireReportsScript() } // Make sure working tree not modified by deploy sh checkTreeUnmodifiedScriptDeploy(niceCmd) @@ -962,11 +962,11 @@ void sonarQubeAnalysisSteps(niceCmd, projectDir, deployJdk, maven, mavenOpts, ma withSonarQubeEnv(installationName: 'AO SonarQube') { withMaven( maven: maven, - mavenOpts: "${deployJdk == '11' ? mavenOpts : (mavenOpts + ' ' + mavenOptsJdk16)}", - mavenLocalRepo: ".m2/repository-jdk-${deployJdk}", + mavenOpts: "${deployJdk == '11' ? mavenOpts : "$mavenOpts $mavenOptsJdk16"}", + mavenLocalRepo: ".m2/repository-jdk-$deployJdk", jdk: "jdk-$deployJdk" ) { - sh "${niceCmd}$MVN_CMD $mvnCommon -Dalt.build.dir=target/jdk-$deployJdk -Dsonar.coverage.jacoco.xmlReportPaths=target/jdk-$deployJdk/site/jacoco/jacoco.xml sonar:sonar" + sh "${niceCmd}$MVN_CMD $mvnCommon -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml sonar:sonar" } } }