Bamboo build merged two builds in one
Asked by Luiz Saggioro:

I have a bamboo plan set to 'Bitbucket Server repository triggered' and 'Branches' set to manual. My repo is configured with 'master' as being the branch and 'Enable quiet period' is **not checked.**

Essentially, this plan runs whenever there is a merge to master and everything works fine.

Although, I observed the following behaviour:

Branch A merges into master -\> Triggers build 1

(while build 1 is running)

Branch B merges into master -\> nothing appeared on the bamboo queue

Branch C merges into master -\> nothing appeared on the bamboo queue

(build 1 finishes)

Build 2 starts with changes from both merges (Branch B -\> master and Branch C -\> master)

It doesn't seem right, since 'quiet period' is not enabled. My train of thought is that 1 change triggers 1 build.

Is it the intended behaviour or is it a bug? Maybe there is another option on bamboo to change this behaviour that I'm not aware of.

**Edit 1**: I'm using version 6.6.2 build 60606 - 14 Aug 18


Answers:
author: Tom Emerson
body: We add a unique capability for each Build Agent. For build jobs that must be serial, a specific, unique capability requirement is added. This breaks redundancy, should that now special build agent fail, manual intervention required to resume the pipeline.

A solution, but not optimum.


author: Foong
body: Is the [Concurrent build](https://confluence.atlassian.com/bamboo/configuring-concurrent-builds-289277193.html) enabled at **Administration \> Plans \> Concurrent builds** ?

If not, Branch B merges will fail to trigger a new build.

comments: author: Luiz Saggioro
body: No, it's *not enabled*.


author: Foong
body: Does it work fine after enabled?


author: Luiz Saggioro
body: Sorry for the late reply.

My pipeline needs to be serial, so I cannot enable Concurrent builds without breaking it.

I can think of enabling Concurrent builds and limiting one agent per plan, so that I'll never have parallel builds, but would still have a build queue, but it's not scalable.

Is there any other solution to that?


author: Foong
body: How about enabling Concurrent builds and dedicate a single agent to the plan?

Since the plan have a dedicated agent, only that single agent will perform build for the plan so it is still considered as serial.
> I can think of enabling Concurrent builds and limiting one agent per plan, so that I'll never have parallel builds, but would still have a build queue, but it's not scalable.

Can you clarify more on the above problem?


author: Luiz Saggioro
body: > I can think of enabling Concurrent builds and limiting one agent per plan, so that I'll never have parallel builds, but would still have a build queue, but it's not scalable.

is the same as
> How about enabling Concurrent builds and dedicate a single agent to the plan?
>
> Since the plan have a dedicated agent, only that single agent will perform build for the plan so it is still considered as serial.

The only problem is that for every plan that I need to be serial, I'll need to create one dedicated agent. It's not scalable.

e.g. If I have 10 plans, I need to set up 10 agents, each dedicated to one plan. Now, if I add X more plans, I have to create X more agents and set them to be each dedicated to one of the new plans. This is pretty annoying, specially if more than one person is in charge of this configuration.

Can't it be turned into a feature?


author: Foong
body: Yes, it is currently tracked as feature request here <https://jira.atlassian.com/browse/BAM-8811>