【问题标题】:How to create a Teamcity build trigger that will run job B once per week, after job A finished, where A runs daily如何创建一个 Teamcity 构建触发器,该触发器将在作业 A 完成后每周运行一次作业 B,其中 A 每天运行
【发布时间】:2020-11-13 11:51:12
【问题描述】:

我创建了一些 Teamcity 工作。 其中一项工作,我们称之为job A,有一个计划触发器,每天早上 7:00 运行。

现在我有另一个,job B,我想每周运行一次,但只能在 job A 运行之后。
鉴于job A 运行大约需要 30 秒,我知道我可以为job B 创建一个计划触发器,该触发器将在每周一上午 07:10 运行。
我也知道我可以创建一个完成构建触发器,确保job Bjob A 运行之后运行,但它会每天运行(因为job A 需要每天运行)

我正在尝试找到一种方法来组合这些,并想出某种触发器来执行以下操作:

  • 每周运行一次job B(比如周一早上),在job A 运行之后。

有人可以将我推向正确的方向吗?或者向我解释是否/为什么我想做的事情是不可以的。谢谢

【问题讨论】:

    标签: scheduled-tasks teamcity jobs


    【解决方案1】:

    看起来名为Snapshot Dependency 的功能非常适合您的场景。

    简而言之,您可以将拥有的两个作业与快照依赖项相关联。在您的情况下,job B 将“快照依赖”job A。根据我的经验,如果两个作业都使用相同的 VCS 根目录,即使用相同的存储库,则效果最佳。

    Job A 配置为每天运行,job B 配置为每周运行(通过定期计划触发器)。当作业 A 被触发时,它根本不会影响作业 B。另一方面,当作业 B 被触发时,它会尝试查找到那时是否有合适的 A 构建。如果这两个作业使用相同的 repo,并且Enforce revision synchronization 标志为 ON,这意味着它将尝试查找相同源代码修订版的 A 的构建。

    如果A有合适的build,就不会触发新的build,只会buildB。如果A没有合适的build,会先触发A,再触发B的build。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多