当活动(即非隐形)目录的内容发生变化时,TFS中是否可以触发CI构建?

时间:2017-12-06 22:16:38

标签: tfs tfsbuild

我的方案如下:

  1. 开发人员对目录ClientDB的SQL更改签入
  2. 唤醒专用构建,从签入文件中提取元数据,处理它并将结果检入兄弟目录ClientMetadata
  3. (不允许开发人员在ClientMetadata下办理登机手续)

    令人讨厌的副作用是,因为专用版本是CI版本,它会唤醒两次:

    1. 适用于ClientDB中的更改,这使其更新ClientMetadata
    2. 第二次,由于ClientMetadata中自身的更改 - 毕竟,此目录在构建的“源设置”部分中显示为Active目录:
    3. enter image description here

      理想情况下,我希望ClientMetadata目录在工作区中可用,但我不希望那里的更改触发构建。

      有可能吗?

3 个答案:

答案 0 :(得分:2)

如果构建中的第二次签入是使用最后有文本***NO_CI***的签入注释完成的,则将禁止持续集成触发器。

这是一个黑客攻击,但它是门禁签到用TFS工作OOTB的方式。

What does ***NO_CI*** stand for?

答案 1 :(得分:0)

不使用XAML构建。在TFS 2015中引入的构建系统中绝对可能。

答案 2 :(得分:0)

当有人检查代码时选择此触发器(CI)时,构建将运行。

实际上,在构建管道中检查文件到源代码管理不是推荐的建议。

如果您不想隐藏ClientMetadata文件夹,并且仍希望在获取源代码期间将其下拉到构建代理程序。请尝试以下解决方法:

您可以删除此文件夹的活动状态,并添加自定义活动,仅将文件从TFS服务器路径($ / .. / .. / ClientMetadata)获取到代理$(BuildDir)。