CirrusCI triggers a new pipeline run on each push, whatever the other runs. As a consequence pushing multiple times in the same branch triggers multiple runs that may overlap.
That can lead to unexpected side-effects, for example on "stateful" code analysers or on deployments. The penultimate version can be analysed/deployed after the latest version.
I consider this behavior as critical for CI/CD pipelines. Only a single pipeline should run at a point of time in a branch. Trigger requests should be handled in sequence.
Meanwhile a fix (I hope so!) is implemented, which workaround could be applied?
Thanks
Auto-cancellation?
Auto-canceling a deployment on production is very risky if it's stopped in the middle.
Do you want the limit on a branch level or on a task level though? To make sure there is only one deploy task running for a repository regardless of a branch. Might be useful for staging deploys from PRs 馃
The branch level fixes all the cases. Then having the ability to define the limit at task level is interesting but should be considered as a nice-to-have optimisation IMO.
Step by step :D
@fkorotkov do you have any temporary workaround to suggest?
@simonbrandhof just wanted to update you that the work on this issue is going on and led to quite a bit of refactorings around. Aiming to finish it and roll out in the next few days.
Thank you very much @fkorotkov. I look forward to giving it a try.
Most helpful comment
@simonbrandhof just wanted to update you that the work on this issue is going on and led to quite a bit of refactorings around. Aiming to finish it and roll out in the next few days.