diff --git a/bamboo-specs/pom.xml b/bamboo-specs/pom.xml
index 886e255..3eef63a 100644
--- a/bamboo-specs/pom.xml
+++ b/bamboo-specs/pom.xml
@@ -5,7 +5,7 @@
com.atlassian.bamboo
bamboo-specs-parent
- 7.1.2
+ 8.2.5
diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java
index e9cc6f3..0261b1f 100644
--- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java
+++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java
@@ -34,164 +34,208 @@ import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties.Location;
/**
* Plan configuration for Bamboo.
* Learn more on: https://confluence.atlassian.com/display/BAMBOO/Bamboo+Specs
*/
@BambooSpec
public class PlanSpec {
+ private static final String REPOSITORY_KEY = "RR";
+ // this is the repo name
+ private static final String SERVICE_NAME = "image-prediction";
+ private static final String SERVICE_KEY = SERVICE_NAME.toUpperCase().replaceAll("-", "").replaceAll("_", "");
+ private static final String PROJECT_NAME = "RED";
+ private static final String PROJECT_KEY = "RED";
+ private static final String HOST = "nexus.iqser.com";
+ private static final String PORT = "5001";
- private static final String SERVICE_NAME = "image-prediction";
+ /**
+ * Run main to publish plan on Bamboo
+ */
+ public static void main(final String[] args) throws Exception {
+ // By default credentials are read from the '.credentials' file.
+ BambooServer bambooServer = new BambooServer("http://localhost:8085");
- private static final String SERVICE_KEY = SERVICE_NAME.toUpperCase().replaceAll("-", "").replaceAll("_", "");
+ Plan plan = new PlanSpec().createDockerBuildPlan();
+ bambooServer.publish(plan);
+ PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier());
+ bambooServer.publish(planPermission);
- /**
- * Run main to publish plan on Bamboo
- */
- public static void main(final String[] args) throws Exception {
- // By default credentials are read from the '.credentials' file.
- BambooServer bambooServer = new BambooServer("http://localhost:8085");
+ Plan secPlan = new PlanSpec().createSecBuild();
+ bambooServer.publish(secPlan);
+ PlanPermissions secPlanPermission = new PlanSpec().createPlanPermission(secPlan.getIdentifier());
+ bambooServer.publish(secPlanPermission);
+ }
- Plan plan = new PlanSpec().createDockerBuildPlan();
- bambooServer.publish(plan);
- PlanPermissions planPermission = new PlanSpec().createPlanPermission(plan.getIdentifier());
- bambooServer.publish(planPermission);
+ private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) {
+ Permissions permission = new Permissions()
+ .userPermissions("atlbamboo", PermissionType.EDIT, PermissionType.VIEW,
+ PermissionType.ADMIN,
+ PermissionType.CLONE, PermissionType.BUILD)
+ .groupPermissions("research", PermissionType.EDIT, PermissionType.VIEW,
+ PermissionType.CLONE,
+ PermissionType.BUILD)
+ .groupPermissions("Development", PermissionType.EDIT, PermissionType.VIEW,
+ PermissionType.CLONE,
+ PermissionType.BUILD)
+ .groupPermissions("QA", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE,
+ PermissionType.BUILD)
+ .loggedInUserPermissions(PermissionType.VIEW)
+ .anonymousUserPermissionView();
+ return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey())
+ .permissions(permission);
+ }
- Plan secPlan = new PlanSpec().createSecBuild();
- bambooServer.publish(secPlan);
- PlanPermissions secPlanPermission = new PlanSpec().createPlanPermission(secPlan.getIdentifier());
- bambooServer.publish(secPlanPermission);
- }
+ private Project project() {
+ return new Project()
+ .name(PROJECT_NAME)
+ .key(new BambooKey(PROJECT_KEY));
+ }
- private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) {
- Permissions permission = new Permissions()
+ public Plan createDockerBuildPlan() {
+ return new Plan(
+ project(),
+ SERVICE_NAME, new BambooKey(SERVICE_KEY))
+ .description("Docker build for " + SERVICE_NAME)
+ // .variables()
+ .stages(
+ new Stage("Sonar Stage")
+ .jobs(
+ new Job("Sonar Job", new BambooKey("SONAR"))
+ .tasks(
+ new CleanWorkingDirectoryTask()
+ .description("Clean working directory.")
+ .enabled(true),
+ new VcsCheckoutTask()
+ .description("Checkout default repository.")
+ .checkoutItems(new CheckoutItem().defaultRepository()),
+ new ScriptTask()
+ .description("Set config and keys.")
+ .location(Location.FILE)
+ .fileFromPath(
+ "bamboo-specs/src/main/resources/scripts/key-prepare.sh"),
+ new ScriptTask()
+ .description("Run Sonarqube scan.")
+ .location(Location.FILE)
+ .fileFromPath(
+ "bamboo-specs/src/main/resources/scripts/sonar-scan.sh")
+ .argument(SERVICE_NAME))
+ .dockerConfiguration(
+ new DockerConfiguration()
+ .image("nexus.iqser.com:5001/infra/release_build:4.2.0")
+ .volume("/var/run/docker.sock",
+ "/var/run/docker.sock"))),
+ new Stage("Build Stage")
+ .jobs(
+ new Job("Build Job", new BambooKey("BUILD"))
+ .tasks(
+ new CleanWorkingDirectoryTask()
+ .description("Clean working directory.")
+ .enabled(true),
+ new VcsCheckoutTask()
+ .description("Checkout default repository.")
+ .checkoutItems(new CheckoutItem()
+ .defaultRepository()),
+ new ScriptTask()
+ .description("Set config and keys.")
+ .location(Location.FILE)
+ .fileFromPath(
+ "bamboo-specs/src/main/resources/scripts/key-prepare.sh"),
+ new ScriptTask()
+ .description("Build Docker container.")
+ .location(Location.FILE)
+ .fileFromPath(
+ "bamboo-specs/src/main/resources/scripts/docker-build.sh")
+ .argument(SERVICE_NAME),
+ new InjectVariablesTask()
+ .description("Inject git tag.")
+ .path("git.tag")
+ .namespace("g")
+ .scope(InjectVariablesScope.LOCAL),
+ new VcsTagTask()
+ .description("${bamboo.g.gitTag}")
+ .tagName("${bamboo.g.gitTag}")
+ .defaultRepository())
+ .dockerConfiguration(
+ new DockerConfiguration()
+ .image(HOST + ":"
+ + PORT
+ + "/infra/release_build:4.5.0")
+ .volume("/var/run/docker.sock",
+ "/var/run/docker.sock"))),
+ new Stage("License Stage")
+ .jobs(
+ new Job("License Job", new BambooKey("LICENSE"))
+ .enabled(true)
+ .tasks(
+ new VcsCheckoutTask()
+ .description("Checkout default repository.")
+ .checkoutItems(new CheckoutItem()
+ .defaultRepository()),
+ new ScriptTask()
+ .description("Build licence.")
+ .location(Location.FILE)
+ .fileFromPath(
+ "bamboo-specs/src/main/resources/scripts/create-licence.sh"))
+ .dockerConfiguration(
+ new DockerConfiguration()
+ .image(HOST + ":"
+ + PORT
+ + "/infra/maven:3.6.2-jdk-13-3.0.0")
+ .volume("/etc/maven/settings.xml",
+ "/usr/share/maven/ref/settings.xml")
+ .volume("/var/run/docker.sock",
+ "/var/run/docker.sock"))))
+ .linkedRepositories(REPOSITORY_KEY + " / " + SERVICE_NAME)
+ .triggers(
+ new BitbucketServerTrigger())
+ .planBranchManagement(
+ new PlanBranchManagement()
+ .createForVcsBranch()
+ .delete(
+ new BranchCleanup()
+ .whenInactiveInRepositoryAfterDays(
+ 14))
+ .notificationForCommitters());
+ }
- .userPermissions("atlbamboo", PermissionType.EDIT, PermissionType.VIEW, PermissionType.ADMIN,
+ 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("Sonar Job", new BambooKey("SONAR"))
+ .enabled(true)
+ .tasks(
+ new CleanWorkingDirectoryTask()
+ .description("Clean working directory.")
+ .enabled(true),
+ new VcsCheckoutTask()
+ .description("Checkout default repository.")
+ .checkoutItems(new CheckoutItem()
+ .defaultRepository()),
+ new ScriptTask()
+ .description("Set config and keys.")
+ .location(Location.FILE)
+ .fileFromPath("bamboo-specs/src/main/resources/scripts/key-prepare.sh"),
+ new ScriptTask()
+ .description("Run Sonarqube scan.")
+ .location(Location.FILE)
+ .fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-scan.sh")
+ .argument(SERVICE_NAME))
+ .dockerConfiguration(
+ new DockerConfiguration()
+ .image(HOST + ":" + PORT
+ + "/infra/release_build:4.2.0")
+ .volume("/var/run/docker.sock",
+ "/var/run/docker.sock"))))
+ .linkedRepositories(REPOSITORY_KEY + " / " + SERVICE_NAME)
+ .triggers(
+ new ScheduledTrigger()
+ .scheduleOnceDaily(LocalTime.of(23, 00)))
+ .planBranchManagement(
+ new PlanBranchManagement()
+ .createForVcsBranchMatching("release.*")
+ .notificationForCommitters());
+ }
- PermissionType.CLONE, PermissionType.BUILD)
-
- .groupPermissions("research", PermissionType.EDIT, PermissionType.VIEW, PermissionType.
- LONE,
- PermissionType.BUILD)
- .groupPermissions("Development", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE,
- PermissionType.BUILD)
- .groupPermissions("QA", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE,
- PermissionType.BUILD)
- .loggedInUserPermissions(PermissionType.VIEW)
- .anonymousUserPermissionView();
- return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission);
- }
-
- private Project project() {
- return new Project()
- .name("RED")
- .key(new BambooKey("RED"));
- }
-
- public Plan createDockerBuildPlan() {
- return new Plan(
- project(),
- SERVICE_NAME, new BambooKey(SERVICE_KEY))
- .description("Docker build for image-prediction.")
- .stages(
- new Stage("Build Stage")
- .jobs(
- new Job("Build Job", new BambooKey("BUILD"))
- .tasks(
- new CleanWorkingDirectoryTask()
- .description("Clean working directory.")
- .enabled(true),
- new VcsCheckoutTask()
- .description("Checkout default repository.")
- .checkoutItems(new CheckoutItem().defaultRepository()),
- new ScriptTask()
- .description("Set config and keys.")
- .location(Location.FILE)
- .fileFromPath(
- "bamboo-specs/src/main/resources/scripts/key-prepare.sh"),
- new ScriptTask()
- .description("Build Docker container.")
- .location(Location.FILE)
- .fileFromPath(
- "bamboo-specs/src/main/resources/scripts/docker-build.sh")
- .argument(SERVICE_NAME),
- new InjectVariablesTask()
- .description("Inject git tag.")
- .path("git.tag")
- .namespace("g")
- .scope(InjectVariablesScope.LOCAL),
- new VcsTagTask()
- .description("${bamboo.g.gitTag}")
- .tagName("${bamboo.g.gitTag}")
- .defaultRepository())
- .dockerConfiguration(
- new DockerConfiguration()
- .image("nexus.iqser.com:5001/infra/release_build:4.5.0")
- .volume("/var/run/docker.sock",
- "/var/run/docker.sock")),
- new Job("Licence Job", new BambooKey("LICENCE"))
- .enabled(false)
- .tasks(
- new VcsCheckoutTask()
- .description("Checkout default repository.")
- .checkoutItems(new CheckoutItem().defaultRepository()),
- new ScriptTask()
- .description("Build licence.")
- .location(Location.FILE)
- .fileFromPath(
- "bamboo-specs/src/main/resources/scripts/create-licence.sh"))
- .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")
- .volume("/var/run/docker.sock",
- "/var/run/docker.sock"))))
- .linkedRepositories("RR / " + SERVICE_NAME)
- .linkedRepositories("RR / redai_image")
- .triggers(
-
- new BitbucketServerTrigger())
- nBranchManagement(
- new P
- .createForVcsBranch()
- .delete(
- new
-
- .notificationForCommitters());
-
-
- ld() {
- ect(), SERVICE_NAME + "-
- ("Security Analysis Plan")
- new Stage("Defau
- Job("Sonar Job", new BambooKey("SON
- .tasks(
- new CleanWorkingDirectoryTask()
- .des
-
- new VcsChec
- .description("Checkout default repos
- .checkoutItems(new CheckoutItem().defaultRepository()),
- new ScriptTask()
-
-
- .fileFromPath("bamboo-specs/src/main/resources/scripts/key-prepare.sh"),
-
-
- .location(Locati
- .fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-scan.sh")
- .argument(SERVICE_NAME))
- .dockerConfiguration(
- new DockerConfiguration()
- .image("nexus.iqser.com:5001/infra/release_build:4.2.0")
- .volume("/var/run/docker.sock", "/var/run/docker.sock"))))
- .linkedRepositories("RR / " + SERVICE_NAME)
- .triggers(
- new ScheduledTrigger()
- .scheduleOnceDaily(LocalTime.of(23, 00)))
- .planBranchManagement(
- new PlanBranchManagement()
- .createForVcsBranchMatching("release.*")
- .notificationForCommitters());
- }
}
+
+
\ No newline at end of file