From 67835decd6ef7f2cabde38216e1bdc8188c5c197 Mon Sep 17 00:00:00 2001 From: cschabert Date: Tue, 5 Apr 2022 09:53:18 +0200 Subject: [PATCH] backport release automation --- .../src/main/java/buildjob/PlanSpec.java | 15 ++-- .../src/main/resources/scripts/build-java.sh | 77 ++++++++++--------- 2 files changed, 51 insertions(+), 41 deletions(-) diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index 38d42551..7bb212fe 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -17,6 +17,7 @@ import com.atlassian.bamboo.specs.api.builders.plan.branches.BranchCleanup; import com.atlassian.bamboo.specs.api.builders.plan.branches.PlanBranchManagement; import com.atlassian.bamboo.specs.api.builders.project.Project; import com.atlassian.bamboo.specs.builders.task.CheckoutItem; +import com.atlassian.bamboo.specs.api.builders.Variable; import com.atlassian.bamboo.specs.builders.task.InjectVariablesTask; import com.atlassian.bamboo.specs.builders.task.ScriptTask; import com.atlassian.bamboo.specs.builders.task.VcsCheckoutTask; @@ -83,6 +84,7 @@ public class PlanSpec { project(), SERVICE_NAME, new BambooKey(SERVICE_KEY)) .description("Plan created from (enter repository url of your plan)") + .variables(new Variable("maven_add_param", "")) .stages(new Stage("Default Stage") .jobs(new Job("Default Job", new BambooKey("JOB1")) @@ -94,6 +96,7 @@ public class PlanSpec { "rm -rf ./*"), new VcsCheckoutTask() .description("Checkout Default Repository") + .cleanCheckout(true) .checkoutItems(new CheckoutItem().defaultRepository()), new ScriptTask() .description("Build") @@ -115,8 +118,8 @@ public class PlanSpec { .defaultRepository()) .dockerConfiguration( new DockerConfiguration() - .image("nexus.iqser.com:5001/infra/maven:3.6.2-jdk-13-3.0.0") - .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") + .image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock") ) ) @@ -147,6 +150,7 @@ public class PlanSpec { "rm -rf ./*"), new VcsCheckoutTask() .description("Checkout Default Repository") + .cleanCheckout(true) .checkoutItems(new CheckoutItem().defaultRepository()), new ScriptTask() .description("Sonar") @@ -155,9 +159,9 @@ public class PlanSpec { .argument(SERVICE_NAME)) .dockerConfiguration( new DockerConfiguration() - .image("nexus.iqser.com:5001/infra/maven:3.6.2-jdk-13-3.0.0") + .image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .dockerRunArguments("--net=host") - .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock") ) ) @@ -165,8 +169,7 @@ public class PlanSpec { .linkedRepositories("RED / " + SERVICE_NAME) .triggers( new ScheduledTrigger() - .scheduleOnceDaily(LocalTime.of(12, 00)), - new BitbucketServerTrigger()) + .scheduleOnceDaily(LocalTime.of(23, 00))) .planBranchManagement(new PlanBranchManagement() .createForVcsBranchMatching("release.*") .notificationForCommitters()); diff --git a/bamboo-specs/src/main/resources/scripts/build-java.sh b/bamboo-specs/src/main/resources/scripts/build-java.sh index 60dfe783..9e02af41 100755 --- a/bamboo-specs/src/main/resources/scripts/build-java.sh +++ b/bamboo-specs/src/main/resources/scripts/build-java.sh @@ -3,49 +3,56 @@ set -e SERVICE_NAME=$1 -if [[ "${bamboo_version_tag}" = "dev" ]] -then - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ +if [[ "$bamboo_planRepository_branchName" == "master" ]] +then + branchVersion=$(cat pom.xml | grep -Eo ".*" | sed -s 's|\(.*\)\..*\(-*.*\)|\1|') + latestVersion=$( semver $(git tag -l $branchVersion.*) | tail -n1) + newVersion="$(semver $latestVersion -p -i minor)" +elif [[ "$bamboo_planRepository_branchName" == release* ]] +then + branchVersion=$(echo $bamboo_planRepository_branchName | sed -s 's|release\/\([0-9]\+\.[0-9]\+\)\.x|\1|') + latestVersion=$( semver $(git tag -l $branchVersion.*) | tail -n1) + newVersion="$(semver $latestVersion -p -i patch)" +elif [[ "${bamboo_version_tag}" != "dev" ]] +then + newVersion="${bamboo_version_tag}" +else + mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ --no-transfer-progress \ + ${bamboo_maven_add_param} \ clean install \ -Djava.security.egd=file:/dev/./urandomelse -else - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - --no-transfer-progress \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ - versions:set \ - -DnewVersion=${bamboo_version_tag} - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - --no-transfer-progress \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \ - versions:set \ - -DnewVersion=${bamboo_version_tag} - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ - --no-transfer-progress \ - clean deploy \ - -e \ - -DdeployAtEnd=true \ - -Dmaven.wagon.http.ssl.insecure=true \ - -Dmaven.wagon.http.ssl.allowall=true \ - -Dmaven.wagon.http.ssl.ignore.validity.dates=true \ - -DaltDeploymentRepository=iqser_release::default::https://nexus.iqser.com/repository/red-platform-releases + echo "gitTag=${bamboo_planRepository_1_branch}_${bamboo_buildNumber}" > git.tag + exit 0 fi -${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ +echo "gitTag=${newVersion}" > git.tag + +mvn --no-transfer-progress \ + -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ + versions:set \ + -DnewVersion=${newVersion} + +mvn --no-transfer-progress \ + -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \ + versions:set \ + -DnewVersion=${newVersion} + +mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ --no-transfer-progress \ + clean deploy \ + ${bamboo_maven_add_param} \ + -e \ + -DdeployAtEnd=true \ + -Dmaven.wagon.http.ssl.insecure=true \ + -Dmaven.wagon.http.ssl.allowall=true \ + -Dmaven.wagon.http.ssl.ignore.validity.dates=true \ + -DaltDeploymentRepository=iqser_release::default::https://nexus.iqser.com/repository/red-platform-releases + +mvn --no-transfer-progress \ -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \ package -${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - --no-transfer-progress \ +mvn --no-transfer-progress \ -f ${bamboo_build_working_directory}/$SERVICE_NAME-image-v1/pom.xml \ docker:push - -if [[ "${bamboo_version_tag}" = "dev" ]] -then - echo "gitTag=${bamboo_planRepository_1_branch}_${bamboo_buildNumber}" > git.tag -else - echo "gitTag=${bamboo_version_tag}" > git.tag -fi