仅在VSTS(原为TFS Online)中Git的子文件夹发生更改时触发CI构建

5
我在Visual Studio Team Services中有一个Git repo,里面有两个子文件夹:HelloWorld和ST。在本地文件夹中,路径显示如下:
根目录 /HelloWorld /HelloWorld /ST
HelloWorld文件夹下是一个C#应用程序,ST文件夹下是一组基本的DB脚本。
我想要分别使用CI构建它们。我为HelloWorld和ST分别创建了构建,每个构建都可以独立工作。如果我使用git提交更改并推送,则这些构建将成功运行。这意味着,如果我从VS中提交一个C#更改,则会运行ST数据库构建,然后运行c#、VS解决方案构建。如果我提交并推送一个db更改,也是同样的情况,两个构建都会运行。
但是,如果我在VSTS中使用新的路径筛选器,并为ST构建添加一个筛选器,例如:
包含“ST” 排除“HelloWorld”
然后在任何一个文件夹中提交更改,ST构建将不会运行。同样,如果我为HelloWorld构建添加一个筛选器(包括或排除),那么该构建也不会运行。
我尝试过以下路径:
/HelloWorld HelloWorld/* HelloWorld/HelloWorld HelloWorld/HelloWorld/* H* /H*
还有其他几种组合方式,但都无法构建。如果使用任何路径筛选器,就无法触发构建。手动构建可以正常工作,无论使用哪种筛选器。
我是否遗漏了什么,还是路径筛选器有问题?
2个回答

5
我不确定您在TFS/VSTS中的项目文件夹结构,因此我为您创建了一个示例项目供参考,以下是文件夹结构: enter image description here 当第一个“HelloWorld”文件夹中有更改推送时,将触发构建,而推送到“ST”文件夹中的更改将不会使用以下设置触发构建: enter image description here 只有当“ST”文件夹中有更改推送时,才会触发构建: enter image description here 请先从“Code”选项卡检查文件夹结构,然后更新构建定义设置。

"include: /HelloWorld" 是否也可捕获子文件夹中的更改,如果不行,正确的语法是什么? - Ivan G.
@aloneguid 是的,它可以捕捉到子文件夹的更改。 - Eddie Chen - MSFT
谢谢。是否有可能排除“合并提交”触发构建?通常合并提交在子文件夹更改之外。 - Ivan G.
仍然无法工作,更改未触发构建。 - Ivan G.

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


“通过历史选项卡验证定义”是什么意思?如果我手动排队或删除路径过滤器,那么我的构建就可以工作。但是一旦添加了路径过滤器,构建就无法工作。您提到的链接略有不同。我没有整个存储库的构建。我有两个子文件夹,每个文件夹都有一个不同的项目。我希望任何一个项目的构建都可以独立工作。关于您的更新,我不确定这是从哪里来的,但截至7月18日,情况仍然存在问题。我在7月16日设置了新的构建,使用了一个新项目(因此是HelloWorld),但路径过滤器无法正常工作。 - way0utwest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接