Add nightly sec test

This commit is contained in:
cschabert 2021-10-28 11:46:15 +02:00
parent 2e66664586
commit 74463ce70e
2 changed files with 60 additions and 13 deletions

View File

@ -1,5 +1,8 @@
package buildjob; package buildjob;
import java.time.DayOfWeek;
import java.time.LocalTime;
import com.atlassian.bamboo.specs.api.BambooSpec; import com.atlassian.bamboo.specs.api.BambooSpec;
import com.atlassian.bamboo.specs.api.builders.BambooKey; import com.atlassian.bamboo.specs.api.builders.BambooKey;
import com.atlassian.bamboo.specs.api.builders.docker.DockerConfiguration; 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.api.builders.project.Project;
import com.atlassian.bamboo.specs.builders.task.*; import com.atlassian.bamboo.specs.builders.task.*;
import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger; 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.InjectVariablesScope;
import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties.Location; import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties.Location;
import com.atlassian.bamboo.specs.util.BambooServer; import com.atlassian.bamboo.specs.util.BambooServer;
@ -40,10 +45,15 @@ public class PlanSpec {
//By default, credentials are read from the '.credentials' file. //By default, credentials are read from the '.credentials' file.
BambooServer bambooServer = new BambooServer("http://localhost:8085"); BambooServer bambooServer = new BambooServer("http://localhost:8085");
Plan plan = new PlanSpec().createPlan(); Plan buildPlan = new PlanSpec().createPlanBuild();
bambooServer.publish(plan); bambooServer.publish(buildPlan);
PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier()); PlanPermissions buildPlanPermission = new PlanSpec().createPlanPermission(buildPlan.getIdentifier());
bambooServer.publish(planPermission); 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) { private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) {
@ -64,11 +74,11 @@ public class PlanSpec {
.key(new BambooKey("RED")); .key(new BambooKey("RED"));
} }
public Plan createPlan() { public Plan createPlanBuild() {
return new Plan( return new Plan(
project(), project(),
SERVICE_NAME, new BambooKey(SERVICE_KEY)) 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") .stages(new Stage("Default Stage")
.jobs(new Job("Default Job", .jobs(new Job("Default Job",
new BambooKey("JOB1")) new BambooKey("JOB1"))
@ -90,11 +100,6 @@ public class PlanSpec {
.description("Resultparser") .description("Resultparser")
.resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml") .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml")
.enabled(true), .enabled(true),
new ScriptTask()
.description("Sonar")
.location(Location.FILE)
.fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh")
.argument(SERVICE_NAME),
new InjectVariablesTask() new InjectVariablesTask()
.description("Inject git Tag") .description("Inject git Tag")
.path("git.tag") .path("git.tag")
@ -121,4 +126,44 @@ public class PlanSpec {
.whenInactiveInRepositoryAfterDays(14)) .whenInactiveInRepositoryAfterDays(14))
.notificationForCommitters()); .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());
}
} }

View File

@ -10,8 +10,10 @@ import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders;
public class PlanSpecTest { public class PlanSpecTest {
@Test @Test
public void checkYourPlanOffline() throws PropertiesValidationException { 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);
} }
} }