如何在x天后触发构建链中的构建?

时间:2016-08-10 06:50:54

标签: triggers teamcity teamcity-9.0 build-chain

我目前正在使用Teamcity将Web应用程序部署到Azure云服务。我们通常使用powershell脚本部署到临时插槽,然后在Azure门户上进行手动交换(登台生产)。

在交换之后,我们通常会将旧的生产部署中的Staging槽保持活动状态几天(如果我们需要恢复/退出部署),然后将其删除 - 这是一个手动过程。

我希望使用Teamcity自动执行此过程。 我的预期解决方案是在部署构建成功后x天启动Teamcity构建(构建步骤的详细信息无关紧要,因为我可能会再次使用PowerShell删除暂存槽)

这个计划指出我要研究Teamcity构建链,快照依赖等等。

到目前为止,我所做的是

  • 通过在部署构建配置和
  • 上创建快照依赖项来正确创建构建链
  • 创建了一个Finish Build Trigger BuildChain

目前,当前的方法在部署构建成功后立即开始依赖构建'删除Azure Staging Web'(B)。但是,我希望在x天之后这是一个延迟构建。

看看上面的构建链,我希望构建 B 在2016年8月13日上午7点31分运行(如果x = 3)

我也查看了“计划触发器”选项,但我对如何使用它来实现这一点略有失误。据我所知,使用cron表达式将导致构建持续运行,这不是我想要的 - 我希望构建 B 只执行一次。

1 个答案:

答案 0 :(得分:1)

是的,这可以通过使用REST api来完成。

我做了一个小样本,应该传达基本步骤。这是一个PowerShell脚本,它将清除另一个构建配置上的触发器(由脚本中的参数值确定),并添加一个计划的触发器,其中包含从当前时间开始X天的开始时间(由脚本中的参数值确定)

1)在主构建中添加PowerShell步骤,最后以add-scheduled-trigger作为源代码运行

enter image description here

2)更新脚本中的参数值

  1. $BuildTypeId - 这是您要将触发器添加到

  2. 的配置的ID
  3. $NumberOfDays - 这是您希望安排触发器的日期数

  4. 脚本中嵌入了admin / admin = REST api的用户名/密码身份验证

  5. 完成此操作后,您应该会在每次构建第一个配置时看到创建/更新的计划触发器

    enter image description here

    希望这有帮助