仅当Azure Pipelines中指定文件夹上没有更改时才触发生成

时间:2019-05-10 12:13:20

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我在Visual Studio Team Services中有一个带有两个子文件夹的存储库:代码和脚本。 现在,使用“触发器”选项卡上的“路径过滤器”,在Scripts文件夹中发生更改时,我将触发一个构建(BuildScripts),在Code文件夹中发生更改时,我将触发另一个构建(BuildCode)。如果在推送或完成拉取请求后两个文件夹都已更改,则将触发两个构建。

如果仅在Code文件夹中有更改,我想做的就是触发BuildCode构建。有办法吗?

2 个答案:

答案 0 :(得分:1)

  

如果仅在Code文件夹中有更改,我想做的就是触发BuildCode构建。有办法吗?

恐怕没有这种方法。

据我了解,如果在代码文件夹中仅进行更改,则希望触发BuildCode构建。这意味着,如果在推送或完成拉取请求后两个文件夹都已更改,则不会触发BuildCode构建。如果我理解您的正确,那么您应该没有任何办法。

启用选项启用持续集成后,Azure Devops将在我们向分支/文件夹提交任何更改以确保我们的修改正确后触发生成。这是设计此功能的初衷。

如果两个文件夹都已更改,但仅构建了一个文件夹,这与该功能的初衷不符。而且我们可以绕过设置BuildCode文件夹启用持续集成。

希望这会有所帮助。

答案 1 :(得分:0)

Azure Devops支持这种情况。如果您使用以下文件夹结构

? rootfolder
|-? scripts
|-? code

只需为要构建的每个路径创建一个azure-pipelines.yml,然后在顶部添加以下几行:

trigger:
  paths:
    include:
    - path/to/include/*

# for exampple: 
#   - scripts/*

# You can also exlude specific files
    exclude:
    - docs/README.md

更多信息,请访问Microsofts Documentation。可以找到一个示例here