We have our release pipelines configured with multiple stages. For each pull request that gets merged into master, a new release is created automatically.
We have DEV => TST => REL => PRD
.
Now, we also use those stages to execute automated tests. So there is a stage after DEV to do some basic automated testing (AT).
So we end up with DEV => AT => TST => REL => PRD
.
AT has a dependency on DEV to run without failure.
Screenshot of our release pipeline
Our problem is the following. When a Release X is executing AT and in the meantime a pull request gets merged resulting in a deployment to DEV for Release X+1, this causes the AT for Release X to fail. Is there a way to make Release X+1 wait in the queue until AT is done for Release X?
We can maybe also solve this by avoiding downtime on DEV during deployment, or isolate the tests on an environment that is not affected by automated deployments etc. But based on what we have, and the time we have available to improve this we would like to know if there is a way to make instances of a pipeline a bit more aware of each other...