multi project/module Azure Pipelines sample
Pipeline | Status |
---|---|
master | |
PullRequest(Lib) | |
PullRequeset(Core) | |
PullRequest(Console) | |
PullRequest |
- Lib
- AzurePipelineSample.NETStandard.Lib
- AzurePipelineSample.NETStandard.Lib.Test
- Core
- depends on Lib
- AzurePipelineSample.NETStandard.Core
- AzurePipelineSample.NETStandard.Core.Test
- Console
- depends on Core
- AzurePipelineSample.NETCore.Console
- AzurePipelineSample.NETCore.Console.Test
Sample provides two pull-request pipeline type. Select pipeline type under:
- Allow duplicate build on many pipelines when changing within multi projects
- pipeline: PullRequest(Lib), yaml:
azure-pipelines-pr-lob.yml
- Build Lib, Build Core, Test Lib
- pipeline: PullRequest(Core), yaml:
azure-pipelines-pr-core.yml
- Build Lib, Build Core, Build Console, Test Core
- pipeline: PullRequest(Console), yaml:
azure-pipelines-pr-console.yml
- Build Lib, Build Core, Build Console, Test Console
- pipeline: PullRequest(Lib), yaml:
- Distribute build on one pipeline when changing within multi projects
- pipeline: PullRequest, yaml:
azure-pipelines-pr.yml
- pipeline: PullRequest, yaml:
Example of changing files, will trigger build:
Changing | Run PullRequest(Lib) | Run PullRequest(Core) | Run PullRequest(Console) |
---|---|---|---|
Lib files | ✔️ | ||
Core files | ✔️ | ||
Console files | ✔️ | ||
Lib & Core files | ✔️ | ✔️ | |
Core & Console files | ✔️ | ✔️ | |
Lib & Core & Console files | ✔️ | ✔️ | ✔️ |
This dupplicate build is happened by path trigger priority between include
and exclude
.
PullRequest pipeline will trigger build:
Changing | Build Lib | Build Core | Build Console | Test Lib | Test core | Test Console |
---|---|---|---|---|---|---|
Lib files | ✔️ | ✔️ | ✔️ | |||
Core files | ✔️ | ✔️ | ✔️ | ✔️ | ||
Console files | ✔️ | ✔️ | ✔️ | ✔️ | ||
Lib & Core files | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
Core & Console files | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
Lib & Core & Console files | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |