【问题标题】:TeamCity: Can a Finish Build Trigger and a Schedule Trigger be combined?TeamCity:可以组合完成构建触发器和计划触发器吗?
【发布时间】:2013-03-12 09:29:12
【问题描述】:

我的设置是这样的,TeamCity 在成功构建另一个项目的基础上开始构建。

这很好用,但现在我需要对其进行限制,以使上述情况仅在白天的某个窗口中发生。

即在成功构建项目 X 后开始构建 Y,但仅限于 9 到 5 小时之间。

据我所知,我不能 ANDOR 两个构建触发器来实现这一点。有谁知道解决这个问题的方法吗?

非常感谢

【问题讨论】:

  • 当 Project X 在早上 6:00 成功构建时会发生什么?项目 Y 的构建被延迟或忽略?
  • 现在,只要“完成构建”触发器到位,只要 X 的构建成功,项目 Y 就会构建,无论发生在什么时间。
  • 我在问你想要发生什么。
  • 所以在 9 点到 5 点之间,我希望每次成功构建项目 X 时都构建项目 Y。

标签: build continuous-integration teamcity


【解决方案1】:

另一种解决方案是在构建 Y 中添加第一步,它将在指定的时间间隔内返回成功代码;只有在这种情况下才会执行下一步;

【讨论】:

    【解决方案2】:

    为了解决贾斯汀的评论:我的理解是您希望项目 Y 构建在指定时间窗口之外跳过。

    我可以提供以下解决方案:

    • 创建辅助构建 Z:
      • 构建步骤。一个构建步骤:命令行运行程序,脚本检查当前时间,如果时间在 9 到 5 之间,则返回错误级别 = 0,否则返回不同的错误级别。
      • 构建失败条件。如果构建过程退出代码不为零,则失败。
      • 构建触发。由成功的构建 X 触发。
    • 将构建 Y 修改为由成功的构建 Z 而不是 X 触发。

    这样就可以了。

    但是,您必须为 Z 花费一个构建配置,如果您使用的是 TeamCity 专业版,这可能是一个问题,它的构建配置限制为 20 个。您也可以通过在 Y 中添加相同的构建步骤而不创建构建 Z,但我不知道它是否会满足您的需求。不利的一面是它会导致项目 Y 有许多构建失败,只是因为它不是适合他们的时间。尽管如此,您仍可以通过避免构建 Y 的剩余步骤来节省 CPU 资源(如果资源节省是您想要实现的目标)。

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-25
      • 2023-03-04
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      相关资源
      最近更新 更多