Skip to content

Commit

Permalink
Default JDK build in target/ with others in target-jdk-…/
Browse files Browse the repository at this point in the history
This is so Jenkins builds are reproducible with local dev builds,
since MANIFEST.MF currently has target/ path within Include-Resource
  • Loading branch information
ao-apps committed Sep 3, 2023
1 parent 4e6dd85 commit d70188a
Show file tree
Hide file tree
Showing 10 changed files with 56 additions and 55 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
target/
target-jdk-*/
.m2/
*@tmp/
pom.xml.tag
Expand Down
48 changes: 24 additions & 24 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,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"
Expand Down Expand Up @@ -498,21 +498,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
"""
}
Expand Down Expand Up @@ -636,7 +636,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")
}
}
}
Expand Down Expand Up @@ -766,20 +766,20 @@ 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 {
// Create a separate copy for full test matrix
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"
}
}
}
Expand Down Expand Up @@ -813,16 +813,16 @@ 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'}"
}
steps {
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"
Expand Down Expand Up @@ -914,17 +914,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)
Expand All @@ -938,11 +938,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"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion all
Submodule all updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
2 changes: 1 addition & 1 deletion bom
Submodule bom updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
48 changes: 24 additions & 24 deletions book/Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,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"
Expand Down Expand Up @@ -512,21 +512,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
"""
}
Expand Down Expand Up @@ -650,7 +650,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")
}
}
}
Expand Down Expand Up @@ -780,20 +780,20 @@ 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 {
// Create a separate copy for full test matrix
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"
}
}
}
Expand Down Expand Up @@ -827,16 +827,16 @@ 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'}"
}
steps {
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"
Expand Down Expand Up @@ -928,17 +928,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)
Expand All @@ -952,11 +952,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"
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion model
Submodule model updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
2 changes: 1 addition & 1 deletion servlet
Submodule servlet updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
2 changes: 1 addition & 1 deletion style
Submodule style updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
2 changes: 1 addition & 1 deletion taglib
Submodule taglib updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile
2 changes: 1 addition & 1 deletion view
Submodule view updated 3 files
+1 −0 .gitignore
+24 −24 Jenkinsfile
+24 −24 book/Jenkinsfile

0 comments on commit d70188a

Please sign in to comment.