每次推送都会触发两次 VSTS 构建

VSTS build triggered twice with each push

我在 VSTS 中设置了一个链式 2 构建场景。

我有一个 CI 构建,称为“将 VSTS 同步到 GitHub”,它运行两个步骤:

  1. 一个 powershell 命令,将更改从该提交推送到 GitHub。

  2. 触发另一个构建,它编译解决方案、运行测试、部署等(我们称之为“正确构建”)

将 VSTS 同步到 GitHub 构建 有一个触发器可以检测何时进行了推送 。 这样执行就OK了。

第二个构建,“正确构建没有定义CI触发器。它应该只被手动触发(或者更确切地说是由 'Sync VSTS to GitHub' 构建)。

每次在 Visual Studio 中进行推送时,都会调用“将 VSTS 同步到 GitHub”构建。成功,然后调用 Proper Build。出于某种原因,此构建为同一个变更集排队两次!
第二个构建是在第一个构建运行一段时间后添加的:

突然出现了一个疯狂的构建:

我在构建之间看到的唯一区别是触发构建所代表的用户:

首次构建:

第二次构建:

特别奇怪的是,当构建从 VSTS 手动排队时(没有新的变更集),这不会发生。在这种情况下,每个构建都会触发一次。

触发正确构建的构建任务是这个: https://marketplace.visualstudio.com/items?itemName=benjhuser.tfs-extensions-build-tasks

这就是我的配置方式(我尝试将突出显示的选项设置为不同的值,但没有效果)。

确认 - 当此任务被 禁用 时,则 Proper Build' 根本不会被触发(如预期)

知道如何避免这种重复吗?

其实答案很简单:

  1. 摆脱'trigger build'任务
  2. 在 'Proper Build' 上创建构建完成触发器,如下所示:

就是这样!