我目前正在使用Teamcity将Web应用程序部署到Azure云服务。我们通常使用powershell脚本部署到临时插槽,然后在Azure门户上进行手动交换(登台生产)。
在交换之后,我们通常会将旧的生产部署中的Staging槽保持活动状态几天(如果我们需要恢复/退出部署),然后将其删除 - 这是一个手动过程。
我希望使用Teamcity自动执行此过程。 我的预期解决方案是在部署构建成功后x
天启动Teamcity构建(构建步骤的详细信息无关紧要,因为我可能会再次使用PowerShell删除暂存槽)
这个计划指出我要研究Teamcity构建链,快照依赖等等。
到目前为止,我所做的是
目前,当前的方法在部署构建成功后立即开始依赖构建'删除Azure Staging Web'(B)。但是,我希望在x
天之后这是一个延迟构建。
看看上面的构建链,我希望构建 B 在2016年8月13日上午7点31分运行(如果x
= 3)
我也查看了“计划触发器”选项,但我对如何使用它来实现这一点略有失误。据我所知,使用cron表达式将导致构建持续运行,这不是我想要的 - 我希望构建 B 只执行一次。
答案 0 :(得分:1)
是的,这可以通过使用REST api来完成。
我做了一个小样本,应该传达基本步骤。这是一个PowerShell脚本,它将清除另一个构建配置上的触发器(由脚本中的参数值确定),并添加一个计划的触发器,其中包含从当前时间开始X天的开始时间(由脚本中的参数值确定)
1)在主构建中添加PowerShell步骤,最后以add-scheduled-trigger作为源代码运行
2)更新脚本中的参数值