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 2831dbe commit 7a7d18a
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 48 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 @@ -467,7 +467,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 @@ -500,21 +500,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 @@ -638,7 +638,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 @@ -768,20 +768,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 @@ -815,16 +815,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 @@ -916,17 +916,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 @@ -940,11 +940,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
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

0 comments on commit 7a7d18a

Please sign in to comment.