【问题标题】:How can I tell why TFS ran a build?如何判断 TFS 为何运行构建?
【发布时间】:2019-11-07 12:39:51
【问题描述】:

我有一个 xaml 构建定义,它的触发器设置为每晚运行,并且未选中“如果没有任何变化则构建”。如果我在白天运行构建,然后在一天的剩余时间里没有人签入,出于某种原因,TFS 会在触发器的时间构建相同的变更集。这似乎发生在不同分支的几个不同构建定义中。有没有办法告诉它为什么要建造?几个月前我将 TFS 服务器更新到当前版本 (Tfs2017.Update3),老实说,自从我去年某个时候更新到 TFS 2017 以来,我没有检查或注意到是否发生了这种情况。是否有任何 TFS 数据库表可供检查以查看触发构建的原因?

这是我当前的设置:

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

    确保将 CI(签入时构建)的任何其他构建定义的工作区部分设置为构建应从中获取文件的特定文件夹。默认值为 $/projectname ,即在该项目中任何文件更改的任何时间开始构建。使用 CI 时,您需要使您的工作区部分非常具体,否则您将产生意想不到的后果,就像您看到的那样。

    【讨论】:

    • 我们有 2 个构建定义到同一个分支。一个是通过触发器用于 CI,另一个是我在这里谈论的,它设置为每晚启动,大约需要 3.5-4 小时,这是汇总所有安装程序的构建。有时我们会在白天运行它来获取安装程序。手头的问题是触发的构建将在没有其他签入时再次运行。您可以看到它重建了相同的变更集。同样不是主要问题,但我们有系统会在早上自动更新以进行质量检查 - 即使没有任何变化,这些系统也会被卸载并安装新版本。
    • 因此,您在白天手动触发它的事实和时间表是两件不同的事情。该计划将检查上次计划的构建与应该开始的时间之间是否有变化。如果有一个新的变更集(有),它将触发。您在白天手动运行它的事实并没有改变这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 2019-01-25
    相关资源
    最近更新 更多