我可以为同一个存储库创建多个构建管道吗?

Pat*_*ick 11 azure-devops azure-pipelines

我有一个包含两个解决方案的存储库。这两个解决方案文件都存在于根目录中,本质上是这样的:

/WebsiteOneDirectory/
/WebsiteTwoDirectory/
/.gitignore
/WebsiteOne.sln
/WebsiteTwo.sln
Run Code Online (Sandbox Code Playgroud)

我是否可以构建指向此存储库的多个管道来构建不同的解决方案?当我创建我的第一个管道时,它正在为 repo 生成一个 azure-pipelines.yml 文件,所以我不确定如何/如果我将能够拥有多个管道配置,如果这是它期望的固定名称。

val*_*tin 12

除了 James Reed 的回答之外,如果您更喜欢使用这些.yml文件,我建议您创建多个.yml定义,每个管道一个。

这是一个样子:

trigger:
  branches:
    include:
    - master
  paths:
    include:
    - WebsiteOneDirectory/*
    exclude:
    - WebsiteTwoDirectory/*
Run Code Online (Sandbox Code Playgroud)

对于构建,您需要指定要构建的解决方案。对于(.net 核心)示例:

variables:
    buildConfiguration: 'Release'
pool:
    vmImage: 'Ubuntu-16.04'
steps:
- script: dotnet build WebsiteOne --configuration $(buildConfiguration)
Run Code Online (Sandbox Code Playgroud)


Jam*_*eed 8

是的,您可以在触发器中使用路径过滤器

编辑您的构建并转到触发器选项卡。您可以在此处添加或删除分支,还可以添加路径过滤器。

您可以选择明确包含或排除路径。在下图中,您可以看到我明确地从 master 分支中排除了“docs”文件夹。

构建触发器