Build TeamCity:完成构建触发器和进度触发器可以组合使用吗?

Build TeamCity:完成构建触发器和进度触发器可以组合使用吗?,build,continuous-integration,teamcity,Build,Continuous Integration,Teamcity,我的设置是这样的,TeamCity在成功构建另一个项目的基础上启动构建 这很有效,但现在我需要约束它,使上述操作只在白天的某个窗口中发生 i、 e.在成功构建项目X的基础上开始构建Y,但仅在9到5个小时之间 据我所知,我不能和或两个构建触发器来实现这一点。有人知道解决这个问题的方法吗 非常感谢Justin的评论:我的理解是您希望在指定的时间窗口之外跳过project Y构建 我可以提供以下解决方案: 创建一个辅助构建Z: 构建步骤。一个构建步骤:命令行运行程序,脚本检查当前时间,如果时间在9

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

这很有效,但现在我需要约束它,使上述操作只在白天的某个窗口中发生

i、 e.在成功构建项目X的基础上开始构建Y,但仅在9到5个小时之间

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


非常感谢Justin的评论:我的理解是您希望在指定的时间窗口之外跳过project Y构建

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

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


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

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

当项目X在上午6:00成功构建时会发生什么?Project Y的生成被延迟或忽略?现在,只要“Finish build”触发器就绪,Project Y就会在X的生成成功的任何时候生成,而不管发生什么时间。我问的是您希望发生什么。因此,在9到5个小时之间,我希望Project Y在每次成功生成Project X时生成。