运行 持续集成触发器在 TFS 2017 Gated Build 中用于提交的更改和其他功能的确切用途是什么?

What is the exact use of Run continuous integration triggers for committed changes and other features in TFS 2017 Gated Build?

我对触发器部分下的 TFS 2017 Build 中提供的选项感到有点困惑。我有两个单独的构建定义,一个用于代码签入,即称为 Gated Build,另一个是手动构建,我们在 Gated 构建完成后用于我们 CI 服务器上的代码 drop\deployment。

最近,我们考虑直接使用门控构建定义进行代码删除,这将节省单独触发手动构建的时间。但是,在执行此 POC 时,我对触发器部分中可用的不同功能的使用感到困惑,尤其是 运行 用于提交更改的持续集成触发器

我已直接将门控构建与发布定义链接起来,一旦门控构建完成,发布定义就会部署代码。我在构建中选择了两个选项,即 Use workspace mapping for filters运行 continuous integration triggers for committed changes。 有了这个,每当我签入代码时,构建一旦完成就会触发发布定义并在服务器上部署代码但是当我取消选择 运行 持续集成触发提交的更改时并签入代码它仍然部署代码只是因为它与发布定义链接。

我在 google 上搜索并试图了解它的使用和其他功能,但不太了解,我也浏览了 link 才知道它不会在变更集中显示 NO CI。

任何人都可以解释触发器下每个 features\option 的确切用途,除了预定的触发器之外,或者请让我知道是否有任何其他链接、博客、视频教程,任何人都知道所有这些触发器选项下的功能是否通过示例进行了深入解释?

在 CI 构建中启用了持续集成选项,因此它会在门控构建完成后自动触发。

正如字面意思,用于持续集成。

  • 对于正常的 CI 构建,它会在有人签入代码时构建, 它发生在将更改签入 TFS 之后。
  • 如果您select门控签到,只有在以下情况下才会接受签到 提交的更改合并并构建成功,这意味着只有 构建成功,可以签入更改。

默认情况下,CI 构建不会在门控签入过程完成并签入更改后 运行。但是,如果您 希望 CI 在门控签入后构建到 运行,select 运行 持续集成触发提交的更改 检查盒子。

更详细的所有触发器信息您可以参考我们官方link下方:

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops

最后,取消选中该选项以防止触发持续集成构建。


至于为什么check-in an code it still deploys the code just because it is linked with the Release definition.这个触发器只控制你的构建definition/pipeline,不影响发布管道。

也有相应的Release Trigger。您应该在您的环境中仔细检查它。

有关在 Azure DevOps 中使用 Gated Build 的示例,您可以参考此博客-- Gated Check-ins in Visual Studio Team Services using TFSVC and Git