From 74463ce70eea670a26100ea5ecdefceff2e95226 Mon Sep 17 00:00:00 2001 From: cschabert Date: Thu, 28 Oct 2021 11:46:15 +0200 Subject: [PATCH] Add nightly sec test --- .../src/main/java/buildjob/PlanSpec.java | 67 ++++++++++++++++--- .../src/test/java/buildjob/PlanSpecTest.java | 6 +- 2 files changed, 60 insertions(+), 13 deletions(-) diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index 5897c417c..071d74ea1 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; @@ -16,6 +19,8 @@ import com.atlassian.bamboo.specs.api.builders.plan.configuration.ConcurrentBuil import com.atlassian.bamboo.specs.api.builders.project.Project; import com.atlassian.bamboo.specs.builders.task.*; 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.model.task.ScriptTaskProperties.Location; import com.atlassian.bamboo.specs.util.BambooServer; @@ -40,10 +45,15 @@ public class PlanSpec { //By default, credentials are read from the '.credentials' file. BambooServer bambooServer = new BambooServer("http://localhost:8085"); - Plan plan = new PlanSpec().createPlan(); - bambooServer.publish(plan); - PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier()); - bambooServer.publish(planPermission); + Plan buildPlan = new PlanSpec().createPlanBuild(); + bambooServer.publish(buildPlan); + PlanPermissions buildPlanPermission = new PlanSpec().createPlanPermission(buildPlan.getIdentifier()); + bambooServer.publish(buildPlanPermission); + + Plan secPlan = new PlanSpec().createSecBuild(); + bambooServer.publish(secPlan); + PlanPermissions secPlanPermission = new PlanSpec().createPlanPermission(secPlan.getIdentifier()); + bambooServer.publish(secPlanPermission); } private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) { @@ -64,11 +74,11 @@ public class PlanSpec { .key(new BambooKey("RED")); } - public Plan createPlan() { + public Plan createPlanBuild() { return new Plan( project(), SERVICE_NAME, new BambooKey(SERVICE_KEY)) - .description("Plan created from (enter repository url of your plan)") + .description("Build Plan for Persitence Service") .stages(new Stage("Default Stage") .jobs(new Job("Default Job", new BambooKey("JOB1")) @@ -90,11 +100,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") @@ -121,4 +126,44 @@ 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() + .notificationForCommitters()); + } } diff --git a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java index d09a7f1fb..d0a1f2059 100644 --- a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java +++ b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java @@ -10,8 +10,10 @@ import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders; public class PlanSpecTest { @Test public void checkYourPlanOffline() throws PropertiesValidationException { - Plan plan = new PlanSpec().createPlan(); + Plan buildPlan = new PlanSpec().createPlanBuild(); + EntityPropertiesBuilders.build(buildPlan); - EntityPropertiesBuilders.build(plan); + Plan secPlan = new PlanSpec().createSecBuild(); + EntityPropertiesBuilders.build(secPlan); } } \ No newline at end of file