I've tried this approach in the link below but it won't compile due to version changes. https://developer.atlassian.com/bamboodev/development-resources/bamboo-developer-faq/how-do-i-start-a-build-programatically
Hi Anna, I don't know what went wrong with that program. We would need more info on that.
But how about using REST API to trigger a plan?
In my Bamboo 5.15, I was able to trigger a test plan by just running a curl command like below.
curl --user username:password -X POST http://yourbamboohost:8085/rest/api/latest/queue/PROJ-PLA
where PROJ is your project name and PLA is your plan name.
Thank you for the reply. But my requirement is to trigger a bamboo plan upon the completion of an external task which cannot be run via a bamboo task. As you have mentioned I already explored the option to use a rest call to trigger a plan programmatically; however I do not want to maintain certain configurations in the external task , hence the requirement is to trigger a bamboo task via a custom rest service plugin. The sample code provided to trigger a build programmatically does not work in Bamboo version 5.11 and I was not able to configure the relevant code segment.The code for Bamboo version 5.11 is,
public TestService( BuildExecutionManager buildExecutionManager, PlanExecutionManager planExecutionManager, PlanManager planManager, VariableDefinitionManager variableDefinitionManager, CredentialsAccessor credentialsAccessor){ this.buildExecutionManager = buildExecutionManager; this.planManager = planManager; this.planExecutionManager = planExecutionManager; this.variableDefinitionManager = variableDefinitionManager; this.credentialsAccessor = credentialsAccessor; } public void setBranchIntegrationService(final BranchIntegrationService branchIntegrationService){ this.branchIntegrationService = branchIntegrationService; } public void runPlan(){BuildContext buildContext = null; Plan plan = planManager.getPlanByKey("ADT-RRR"); BuildContextBuilderFactoryImpl buildContextBuilderFactory = new BuildContextBuilderFactoryImpl(branchIntegrationService, variableDefinitionManager, credentialsAccessor); BuildContextBuilder buildContextBuilder = buildContextBuilderFactory.createBuilder(); buildContextBuilder = buildContextBuilder.buildDefinition(plan.getBuildDefinition()); buildContext = buildContextBuilder.build(); buildExecutionManager.execute(buildContext); }
The following error triggers upon the execution of the above code.
java.lang.NullPointerException at com.atlassian.bamboo.v2.build.BuildIdentifierImpl.<init>(BuildIdentifierImpl.java:26) at com.atlassian.bamboo.v2.build.BuildContextImpl.<init>(BuildContextImpl.java:87) at com.atlassian.bamboo.build.context.BuildContextBuilderImpl.build(BuildContextBuilderImpl.java:133) at com.testMyService.rest.TestService.runPlan(TestService.java:128) at com.testMyService.rest.TestService.getMessageFromPath(TestService.java:104) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497)
It looks like you're new here. Sign in or register to get started.