1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
|
import com.atlassian.bamboo.specs.api.BambooSpec;
import com.atlassian.bamboo.specs.api.builders.AtlassianModule;
import com.atlassian.bamboo.specs.api.builders.BambooKey;
import com.atlassian.bamboo.specs.api.builders.BambooOid;
import com.atlassian.bamboo.specs.api.builders.plan.Job;
import com.atlassian.bamboo.specs.api.builders.plan.Plan;
import com.atlassian.bamboo.specs.api.builders.plan.PlanIdentifier;
import com.atlassian.bamboo.specs.api.builders.plan.Stage;
import com.atlassian.bamboo.specs.api.builders.plan.artifact.Artifact;
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.api.builders.requirement.Requirement;
import com.atlassian.bamboo.specs.api.builders.task.AnyTask;
import com.atlassian.bamboo.specs.api.model.BambooKeyProperties;
import com.atlassian.bamboo.specs.api.model.BambooOidProperties;
import com.atlassian.bamboo.specs.api.model.plan.JobProperties;
import com.atlassian.bamboo.specs.api.model.plan.PlanIdentifierProperties;
import com.atlassian.bamboo.specs.api.model.plan.PlanProperties;
import com.atlassian.bamboo.specs.api.model.plan.StageProperties;
import com.atlassian.bamboo.specs.api.model.plan.artifact.ArtifactProperties;
import com.atlassian.bamboo.specs.api.model.plan.branches.PlanBranchManagementProperties;
import com.atlassian.bamboo.specs.api.model.plan.requirement.RequirementProperties;
import com.atlassian.bamboo.specs.api.model.project.ProjectProperties;
import com.atlassian.bamboo.specs.api.model.task.AnyTaskProperties;
import com.atlassian.bamboo.specs.builders.task.ArtifactDownloaderTask;
import com.atlassian.bamboo.specs.builders.task.CheckoutItem;
import com.atlassian.bamboo.specs.builders.task.DownloadItem;
import com.atlassian.bamboo.specs.builders.task.ScriptTask;
import com.atlassian.bamboo.specs.builders.task.TestParserTask;
import com.atlassian.bamboo.specs.builders.task.VcsCheckoutTask;
import com.atlassian.bamboo.specs.builders.trigger.BitbucketServerTrigger;
import com.atlassian.bamboo.specs.builders.trigger.RemoteTrigger;
import com.atlassian.bamboo.specs.builders.trigger.ScheduledTrigger;
import com.atlassian.bamboo.specs.model.task.ArtifactDownloaderTaskProperties;
import com.atlassian.bamboo.specs.model.task.DownloadItemProperties;
import com.atlassian.bamboo.specs.model.task.ScriptTaskProperties;
import com.atlassian.bamboo.specs.model.task.TestParserTaskProperties;
import com.atlassian.bamboo.specs.model.task.VcsCheckoutTaskProperties;
import com.atlassian.bamboo.specs.model.trigger.BitbucketServerTriggerProperties;
import com.atlassian.bamboo.specs.model.trigger.RemoteTriggerProperties;
import com.atlassian.bamboo.specs.model.trigger.ScheduledTriggerProperties;
import com.atlassian.bamboo.specs.util.BambooServer;
import com.atlassian.bamboo.specs.util.MapBuilder;
@BambooSpec
public class PlanSpec {
public static void main(String... argv) {
//By default credentials are read from the '.credentials' file.
BambooServer bambooServer = new BambooServer("http://localhost:8085");
Plan rootObject = new Plan(new Project()
.oid(new BambooOid("1jx1kzc2o5xc1"))
.key(new BambooKey("PLAYG")),
"blasr-move bamboo inline build scripts to bitbucket",
new BambooKey("BBIBSTB"))
.oid(new BambooOid("1jwrvrqpgcf88"))
.enabled(false)
.stages(new Stage("sonarqube")
.jobs(new Job("SonarQube",
new BambooKey("SON"))
.tasks(new VcsCheckoutTask()
.description("Checkout Default Repository")
.checkoutItems(new CheckoutItem().defaultRepository()),
new AnyTask(new AtlassianModule("ch.mibex.bamboo.sonar4bamboo:sonar4bamboo.sonarscannertask"))
.configuration(new MapBuilder()
.put("incrementalFileForInclusionList", "")
.put("chosenSonarConfigId", "4")
.put("useGradleWrapper", "")
.put("useNewGradleSonarQubePlugin", "")
.put("sonarJavaSource", "")
.put("sonarProjectName", "SAT-blasr")
.put("buildJdk", "JDK 1.8.0_101")
.put("gradleWrapperLocation", "")
.put("sonarLanguage", "")
.put("sonarSources", "iblasr, ./Blasr.cpp")
.put("useGlobalSonarServerConfig", "true")
.put("incrementalMode", "")
.put("failBuildForBrokenQualityGates", "")
.put("sonarTests", "")
.put("failBuildForSonarErrors", "")
.put("sonarProjectVersion", "5.3.0.${bamboo.buildNumber}")
.put("sonarBranch", "")
.put("executable", "SonarScannerHome")
.put("illegalBranchCharsReplacement", "_")
.put("failBuildForTaskErrors", "true")
.put("incrementalModeNotPossible", "incrementalModeRunFullAnalysis")
.put("sonarJavaTarget", "")
.put("environmentVariables", "")
.put("incrementalModeGitBranchPattern", "")
.put("legacyBranching", "")
.put("replaceSpecialBranchChars", "")
.put("additionalProperties", "-Dsonar.cfamily.build-wrapper-output.bypass=true")
.put("autoBranch", "true")
.put("sonarProjectKey", "SAT-blasr")
.put("incrementalModeBambooUser", "")
.put("overrideSonarBuildConfig", "true")
.put("workingSubDirectory", "")
.build()))
.requirements(new Requirement("system.os")
.matchValue("linux")
.matchType(Requirement.MatchType.EQUALS))),
new Stage("Default Stage")
.jobs(new Job("Building",
new BambooKey("JOB1"))
.artifacts(new Artifact()
.name("prebuilt_blasr")
.copyPattern("blasr-*.tgz")
.location("tarballs"))
.tasks(new VcsCheckoutTask()
.description("Checkout Default Repository")
.checkoutItems(new CheckoutItem().defaultRepository())
.cleanCheckout(true),
new ArtifactDownloaderTask()
.description("pbbam artifact")
.enabled(false)
.sourcePlan(new PlanIdentifier()
.key(new BambooKey("PBBAM"))
.projectKey(new BambooKey("SAT")))
.artifacts(new DownloadItem()
.allArtifacts(true)),
new ArtifactDownloaderTask()
.description("blasr_libcpp artifact")
.enabled(false)
.sourcePlan(new PlanIdentifier()
.key(new BambooKey("BLC"))
.projectKey(new BambooKey("SAT")))
.artifacts(new DownloadItem()
.allArtifacts(true)),
new ScriptTask()
.description("build, test, and publish")
.location(ScriptTaskProperties.Location.FILE)
.fileFromPath("bamboo_build.sh"),
new ScriptTask()
.description("test_fast")
.enabled(false)
.inlineBody("#!/bin/bash -xe\nexec bash repos/blasr/bamboo_test.sh"),
new TestParserTask(TestParserTaskProperties.TestType.JUNIT)
.description("run_cram_unit")
.resultDirectories("build/*.xml"))
.requirements(new Requirement("system.dist")
.matchValue("redhat")
.matchType(Requirement.MatchType.EQUALS))))
.linkedRepositories("blasr")
.triggers(new BitbucketServerTrigger()
.name("Bitbucket Server repository triggered"),
new RemoteTrigger()
.name("Remote trigger"),
new ScheduledTrigger()
.name("Scheduled")
.description("nightly")
.enabled(false))
.planBranchManagement(new PlanBranchManagement()
.createForPullRequest()
.delete(new BranchCleanup()
.whenRemovedFromRepositoryAfterDays(7)
.whenInactiveInRepositoryAfterDays(30))
.notificationForCommitters());
bambooServer.publish(rootObject);
}
}
|