I currently have a monorepo with services in subdirectories that I'm leaning towards turning into a multirepo with a metarepo.
One of the reasons I decided to give Azure DevOps a try was someone told me you can have triggers on the subdirectories like:
trigger:
branches:
include:
- master
paths:
include:
- client
Tested and it works.
However, what I'm wondering is if it possible to have multiple independent triggers, or does this require either a polyrepo or multiple .yml
? The reason being if there are only changes in the client
service, it only triggers that set of tests, build, and deployment, while not triggering the api
service to run tests, build, and deploy.
For example:
trigger:
branches:
include:
- master
paths:
include:
- client
stages:
...
Run tests
If tests pass, build and push to ACR
Deploy to AKS
...
trigger:
branches:
include:
- master
paths:
include:
- api
stages:
...
Run tests
If tests pass, build and push to ACR
Deploy to AKS
...
That way, changes in one doesn't cause the entire application to be rebuilt, just what changed.
However, does this require multiple .yml
files (not even sure if anything other than azure-pipelines.yml
is recognized), does this necessitate a polyrepo, or is this doable in a single azure-pipelines.yml
that I'm just not seeing?