From 18b52bdf5b2473acf3516cdcf8368d51b0b4dbbc Mon Sep 17 00:00:00 2001 From: cschabert Date: Fri, 1 Apr 2022 14:05:20 +0200 Subject: [PATCH] automate relases --- bamboo-specs/pom.xml | 2 +- .../src/main/java/buildjob/PlanSpec.java | 15 ++-- .../src/main/resources/scripts/build-java.sh | 79 ++++++++++--------- .../src/main/resources/scripts/sonar-java.sh | 58 +++++++------- 4 files changed, 83 insertions(+), 71 deletions(-) diff --git a/bamboo-specs/pom.xml b/bamboo-specs/pom.xml index 60c0059..42e07d8 100644 --- a/bamboo-specs/pom.xml +++ b/bamboo-specs/pom.xml @@ -5,7 +5,7 @@ com.atlassian.bamboo bamboo-specs-parent - 8.0.3 + 8.1.3 diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index 3a84abe..e35cb1a 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,9 +118,9 @@ public class PlanSpec { .defaultRepository()) .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") .dockerRunArguments("--net=host") - .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") + .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock") ) ) @@ -148,6 +151,7 @@ public class PlanSpec { "rm -rf ./*"), new VcsCheckoutTask() .description("Checkout Default Repository") + .cleanCheckout(true) .checkoutItems(new CheckoutItem().defaultRepository()), new ScriptTask() .description("Sonar") @@ -156,9 +160,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") .dockerRunArguments("--net=host") - .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") + .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") .volume("/var/run/docker.sock", "/var/run/docker.sock") ) ) @@ -166,8 +170,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 60dfe78..23282b5 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=$(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=$(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 + docker:push \ No newline at end of file diff --git a/bamboo-specs/src/main/resources/scripts/sonar-java.sh b/bamboo-specs/src/main/resources/scripts/sonar-java.sh index cfad6b0..b7ade4d 100755 --- a/bamboo-specs/src/main/resources/scripts/sonar-java.sh +++ b/bamboo-specs/src/main/resources/scripts/sonar-java.sh @@ -3,40 +3,42 @@ set -e SERVICE_NAME=$1 -echo "dependency-check:aggregate" -${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ +echo "build jar binaries" +mvn -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ --no-transfer-progress \ + clean install \ + -Djava.security.egd=file:/dev/./urandomelse + +echo "dependency-check:aggregate" +mvn --no-transfer-progress \ -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ org.owasp:dependency-check-maven:aggregate if [[ -z "${bamboo_repository_pr_key}" ]] then echo "Sonar Scan for branch: ${bamboo_planRepository_1_branch}" - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - --no-transfer-progress \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ - sonar:sonar \ - -Dsonar.projectKey=RED_$SERVICE_NAME \ - -Dsonar.host.url=https://sonarqube.iqser.com \ - -Dsonar.login=${bamboo_sonarqube_api_token_secret} \ - -Dsonar.branch.name=${bamboo_planRepository_1_branch} \ - -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \ - -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \ - -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html - + mvn --no-transfer-progress \ + -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ + sonar:sonar \ + -Dsonar.projectKey=RED_$SERVICE_NAME \ + -Dsonar.host.url=https://sonarqube.iqser.com \ + -Dsonar.login=${bamboo_sonarqube_api_token_secret} \ + -Dsonar.branch.name=${bamboo_planRepository_1_branch} \ + -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \ + -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \ + -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html else echo "Sonar Scan for PR with key1: ${bamboo_repository_pr_key}" - ${bamboo_capability_system_builder_mvn3_Maven_3}/bin/mvn \ - --no-transfer-progress \ - -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ - sonar:sonar \ - -Dsonar.projectKey=RED_$SERVICE_NAME \ - -Dsonar.host.url=https://sonarqube.iqser.com \ - -Dsonar.login=${bamboo_sonarqube_api_token_secret} \ - -Dsonar.pullrequest.key=${bamboo_repository_pr_key} \ - -Dsonar.pullrequest.branch=${bamboo_repository_pr_sourceBranch} \ - -Dsonar.pullrequest.base=${bamboo_repository_pr_targetBranch} \ - -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \ - -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \ - -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html -fi + mvn --no-transfer-progress \ + -f ${bamboo_build_working_directory}/$SERVICE_NAME-v1/pom.xml \ + sonar:sonar \ + -Dsonar.projectKey=RED_$SERVICE_NAME \ + -Dsonar.host.url=https://sonarqube.iqser.com \ + -Dsonar.login=${bamboo_sonarqube_api_token_secret} \ + -Dsonar.pullrequest.key=${bamboo_repository_pr_key} \ + -Dsonar.pullrequest.branch=${bamboo_repository_pr_sourceBranch} \ + -Dsonar.pullrequest.base=${bamboo_repository_pr_targetBranch} \ + -Dsonar.dependencyCheck.jsonReportPath=target/dependency-check-report.json \ + -Dsonar.dependencyCheck.xmlReportPath=target/dependency-check-report.xml \ + -Dsonar.dependencyCheck.htmlReportPath=target/dependency-check-report.html +fi \ No newline at end of file