I have a dotnet + angular template project. Back then we have only one yaml which did both CI/CD.
I’m trying to separate resposabilities in the following:
- yaml dotnet part of the project (CI)
- yaml angular part of the project (CI)
- yaml for deployment based on the branches, which declares two pipeline resources (back and front)
My problem here is when I complete a pull request with changes in both dotnet and angular parts it will fire its CI (back and front) which is correct, but I want some kind of ‘batch’ parameter to do only one deployment when both pipelines finish since now I’m having two deployments, one that is fired by the backend CI and another which is fired by the frontend CI
Is there any way to control this and make what desired?
Thanks!
2
Answers
This is not possible to configure that. You can try to build something on your own like send message about CI to external system which has state and can fire CD when you get two greens from dotnet and angular.
You can try also merge it into one pipeline where you have two parallel stages for CI (dotnet and angular) and one CD stage which runs only when both CI stages passes.
If the goal is only to separate the code for the CI part of the backend and frontend, then you can create a separate YAML file for both as a template, then make one new pipeline which refers to both CI YAML Pipeline and then in the same pipeline add the CD part.
Refer to this link to learn how to create templates https://learn.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops&pivots=templates-includes