触发CI仅在使用Git对VSTS(TFS Online)中的子文件夹进行更改时构建

时间:2016-07-17 22:58:20

标签: git tfs continuous-integration azure-devops azure-pipelines

我在Visual Studio Team Services中有一个带有两个子文件夹的Git仓库。一个是HelloWorld,另一个是ST。路径在我的本地文件夹中显示为。

根   /你好,世界       /你好,世界   / ST

在HelloWorld下是一个C#应用程序。 ST下是一组基本的DB脚本。

我想分别使用CI构建这些CI。我有一个HelloWorld构建和一个ST构​​建,每个都独立工作。如果我使用git和push提交更改,则构建会成功运行。意思是,如果我从VS提交C#更改,将运行ST数据库构建,然后运行c#,VS解决方案构建。 如果我提交并推送db更改,同样的事情。两个版本都运行。

但是,如果我在VSTS中使用新的路径过滤器,并使用以下任一项为ST构建添加过滤器:

  • 包括“ST”
  • 排除“HelloWorld”

在任一文件夹中提交更改,ST版本将无法运行。

同样,如果我将一个过滤器添加到HelloWorld构建,包含或排除,那么该构建将不会运行。

我尝试了以下路径:

  • / HelloWorld的
  • 的HelloWorld / *
  • 的HelloWorld / HelloWorld的
  • 的HelloWorld / HelloWorld的/ *
  • H *
  • / H *

要么构建更多的组合。如果我使用任何路径过滤器,事情将不会触发构建。无论过滤器是什么,手动构建都可以正常工作。

我错过了什么或路径过滤器坏了吗?

2 个答案:

答案 0 :(得分:5)

我不确定TFS / VSTS中项目的文件夹结构,所以我创建了一个示例项目供您参考,以下是文件夹结构: enter image description here

如果将更改推送到第一个“HelloWorld”文件夹中,则会触发构建,并且按下“ST”文件夹的更改不会触发使用以下设置的构建: enter image description here

只有在将更改推送到“ST”文件夹时才会触发构建: enter image description here

请先从“代码”标签检查文件夹结构,然后更新构建定义的设置。

答案 1 :(得分:0)

这是一个问题,请参阅此链接了解详情:CI Builds may not trigger as expected.尝试检查您的构建定义是否受到影响,通过历史记录标签验证定义

此外,这个问题已于6月27日修复。

  

最终更新:2016年6月27日星期一22:53 UTC

     

修复程序部署于2016年6月27日21:26 UTC完成,我们有   确认我们无法再重现该问题。我们理解这一点   客户依赖VS Team Services作为关键服务并道歉   对于此事件造成的任何影响。

     

此致,Arvin