Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Limit the amount of parallel jobs running in a stage

Jurn van Mieghem December 16, 2020

Due to an integration with BrowserStack I can (currently) only run 2 browser tests at the same time. However I'd like to run all browsers in parallel jobs instead of sequential tasks. Is it possible to limit the amount of jobs that can run simultaneously within a stage using YAML specs.

I have seen something about a concurrent-build-plugin but cannot find any documentation on the YAML specs for that. 

1 answer

0 votes
Steffen Opel _Utoolity_
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 5, 2021

You can configure the default number of concurrent builds for a plan in the Bamboo administration. The default can then be overridden on the Miscellaneous tab of a plan's configuration (called Other tab in recent Bamboo versions, the docs are outdated).

With Bamboo Specs (Java), this can be programmatically handled as documented in the Miscellaneous plugins (Java) section:

ConcurrentBuilds concurrentBuilds = new ConcurrentBuilds()
    .maximumNumberOfConcurrentBuilds(7);

Plan
plan = new Plan(project, "My Plan One", "PLAN1") .description("This is an example of a plan") .enabled(true) .stages(stage1) .pluginConfigurations(concurrentBuilds, configurationForPlan);

I haven't tried whether this is also available for Bamboo Specs (YAML), but correlating the Java approach and the resp. Miscellaneous plugins (YAML) section seems to suggest that such settings might be surfaced via the "other" key in YAML:

version: 2

Build binaries:
  ...
  other:
    clean-working-dir: true

Unfortunately this doesn't seem to be covered by the export plan feature yet (not even the Java version), so as mentioned in the docs,  I'm afraid spelunking in the source code or some trial and error is required to identify the key, if any:

In case a plugin doesn’t have a dedicated builder, you can use AllOtherPluginsConfiguration to provide configuration for such plugins as a workaround. Refer to plugin documentation to obtain a list of valid keys. Note that keys imported with AllOtherPluginsConfiguration are not validated.

Good luck!

Jurn van Mieghem January 6, 2021

Thanks, Steffen for this extended answer and it learned me a thing or two. Unfortunately it does not answer my direct question as I want to limit the number of parallel jobs from my YAML file.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events