From e837108d7cf595aab58f6a6fff1ea71b1c4208f0 Mon Sep 17 00:00:00 2001 From: cschabert Date: Thu, 28 Oct 2021 15:02:16 +0200 Subject: [PATCH] Add nightly sec build --- bamboo-specs/pom.xml | 2 +- .../src/main/java/buildjob/PlanSpec.java | 56 +++++++++++++++++-- .../src/test/java/buildjob/PlanSpecTest.java | 4 +- 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/bamboo-specs/pom.xml b/bamboo-specs/pom.xml index f0524e0..60c0059 100644 --- a/bamboo-specs/pom.xml +++ b/bamboo-specs/pom.xml @@ -5,7 +5,7 @@ com.atlassian.bamboo bamboo-specs-parent - 7.2.2 + 8.0.3 diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index c49690b..3a84abe 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -1,5 +1,8 @@ package buildjob; +import java.time.DayOfWeek; +import java.time.LocalTime; + import com.atlassian.bamboo.specs.api.BambooSpec; import com.atlassian.bamboo.specs.api.builders.BambooKey; import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration; @@ -19,6 +22,8 @@ import com.atlassian.bamboo.specs.builders.task.ScriptTask; import com.atlassian.bamboo.specs.builders.task.VcsCheckoutTask; import com.atlassian.bamboo.specs.builders.task.VcsTagTask; import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger; +import com.atlassian.bamboo.specs.builders.trigger.RepositoryPollingTrigger; +import com.atlassian.bamboo.specs.builders.trigger.ScheduledTrigger; import com.atlassian.bamboo.specs.model.task.InjectVariablesScope; import com.atlassian.bamboo.specs.util.BambooServer; import com.atlassian.bamboo.specs.builders.task.ScriptTask; @@ -50,6 +55,11 @@ public class PlanSpec { bambooServer.publish(plan); PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier()); bambooServer.publish(planPermission); + + Plan secPlan = new PlanSpec().createSecBuild(); + bambooServer.publish(secPlan); + PlanPermissions secPlanPermission = new PlanSpec().createPlanPermission(secPlan.getIdentifier()); + bambooServer.publish(secPlanPermission); } private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) { @@ -94,11 +104,6 @@ public class PlanSpec { .description("Resultparser") .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml") .enabled(true), - new ScriptTask() - .description("Sonar") - .location(Location.FILE) - .fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh") - .argument(SERVICE_NAME), new InjectVariablesTask() .description("Inject git Tag") .path("git.tag") @@ -126,4 +131,45 @@ public class PlanSpec { .whenInactiveInRepositoryAfterDays(14)) .notificationForCommitters()); } + + public Plan createSecBuild() { + return new Plan( + project(), + SERVICE_NAME + "-Sec", new BambooKey(SERVICE_KEY + "SEC")) + .description("Security Analysis Plan") + .stages(new Stage("Default Stage") + .jobs(new Job("Default Job", + new BambooKey("JOB1")) + .tasks( + new ScriptTask() + .description("Clean") + .inlineBody("#!/bin/bash\n" + + "set -e\n" + + "rm -rf ./*"), + new VcsCheckoutTask() + .description("Checkout Default Repository") + .checkoutItems(new CheckoutItem().defaultRepository()), + new ScriptTask() + .description("Sonar") + .location(Location.FILE) + .fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh") + .argument(SERVICE_NAME)) + .dockerConfiguration( + new DockerConfiguration() + .image("nexus.iqser.com:5001/infra/maven:3.6.2-jdk-13-3.0.0") + .dockerRunArguments("--net=host") + .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") + .volume("/var/run/docker.sock", "/var/run/docker.sock") + ) + ) + ) + .linkedRepositories("RED / " + SERVICE_NAME) + .triggers( + new ScheduledTrigger() + .scheduleOnceDaily(LocalTime.of(12, 00)), + new BitbucketServerTrigger()) + .planBranchManagement(new PlanBranchManagement() + .createForVcsBranchMatching("release.*") + .notificationForCommitters()); + } } diff --git a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java index d09a7f1..ed095c7 100644 --- a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java +++ b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java @@ -11,7 +11,9 @@ public class PlanSpecTest { @Test public void checkYourPlanOffline() throws PropertiesValidationException { Plan plan = new PlanSpec().createPlan(); - EntityPropertiesBuilders.build(plan); + + Plan secPlan = new PlanSpec().createSecBuild(); + EntityPropertiesBuilders.build(secPlan); } } \ No newline at end of file