The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Can I Make Pipelines Wait If A Pipeline In Another Repo Rinning?

z
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
August 17, 2022

Let's say I have two repositories, repository_a and repository_b

Whenever a merge happens in repository_b, a pipeline is triggered to push some code to my cloud service. I would like to a configure it so if a merge happens in repository_b, Bitbucket will check to see no pipelines are running in repository_b and if there are, wait until repository_a's pipeline is done before running the pipeline

Is there an option to do this?

1 answer

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Theodora Boudale
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 24, 2022

Hi @z and welcome to the community.

You mentioned:

Bitbucket will check to see no pipelines are running in repository_b and if there are, wait until repository_a's pipeline ...

I believe you mean that Bitbucket should check if no pipelines are running in repository_a instead? And then wait until repository_a pipelines are finished?

There is no out-of-the-box feature to do this, but you could do it with a script using our API.

You can write a script with a while loop that checks if there are any pipelines with status PENDING, BUILDING or IN_PROGRESS in repository_a.

If there are, wait for e.g. 30 seconds or a different duration (depending on how much time builds in repository_a usually take) and repeat the loop.

When there are no pipelines with these statuses in repository_a, then exit the script.

You can then execute this script at the beginning of the build in repository_b, and when the script exits successfully, the rest of the build's commands will be executed.

You can use the following API endpoint to retrieve pipelines in repository_a

and you can filter by the statuses I mentioned as follows:

https://api.bitbucket.org/2.0/repositories/my-workspace/repository_a/pipelines/?sort=-created_on&status=PENDING&status=BUILDING&status=IN_PROGRESS

where my-workspace replace with the workspace id where repository_a belongs, and repository_a replace with the repo slug for that repo.

Kind regards,
Theodora

DEPLOYMENT TYPE
CLOUD
TAGS
AUG Leaders

Atlassian Community Events