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 716eea1 commit d73d364
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 48 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,4 +1,5 @@
target/
target-jdk-*/
.m2/
*@tmp/
pom.xml.tag
Expand Down
48 changes: 24 additions & 24 deletions Jenkinsfile
Expand Up @@ -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"
Expand Down Expand Up @@ -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
"""
}
Expand Down Expand Up @@ -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")
}
}
}
Expand Down Expand Up @@ -785,20 +785,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 @@ -832,16 +832,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 @@ -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)
Expand All @@ -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"
}
}
}
Expand Down
48 changes: 24 additions & 24 deletions book/Jenkinsfile
Expand Up @@ -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"
Expand Down Expand Up @@ -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
"""
}
Expand Down Expand Up @@ -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")
}
}
}
Expand Down Expand Up @@ -790,20 +790,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 @@ -837,16 +837,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 @@ -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)
Expand All @@ -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"
}
}
}
Expand Down

0 comments on commit d73d364

Please sign in to comment.