2016-08-10 48 views
0

我目前正在使用Teamcity将Web应用程序部署到Azure云服务。我们通常使用PowerShell脚本部署到临时插槽,然后在Azure门户上进行手动交换(暂存到生产)。如何在x天后触发构建链中的构建?

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

我正在使用Teamcity自动执行此过程。 我意的解决办法是有一个TeamCity的构建踢部署构建已suceeded(的构建步骤的细节是无关紧要的,因为我可能会再次使用PowerShell来删除分段插槽)

该计划关闭后x天指出我寻找到的TeamCity构建链,快照等依赖

我做了什么至今

  • 通过部署构建配置和
  • 创建快照依赖正确创建构建链
  • 创建完成构建触发 BuildChain

此刻,目前的办法开球的相关的构建“删除Azure的临时网络”(B)部署构建成功之后。但是,我希望这是在x天之后延迟的构建。

综观上述构建链,我想构建在上午07时31 13 - 8 - 2016运行(如果x = 3)

我已经调查附表触发选项,以及,但我稍微失去了如何使用它来实现这一点。据我所知,使用cron表达式将导致构建不断运行,这不是我想要的 - 我希望构建B只能执行一次。

回答

1

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

我已经做了一个小样本,它应该传达的基本步骤。这是一个PowerShell脚本,它将清除另一个生成配置上的触发器(由脚本中的参数值确定),并添加一个启动时间为从当前时间起X天的计划触发器(由脚本中的参数值确定)

1)在脚本一个PowerShell步骤添加到主构建,在端部和运行add-scheduled-trigger作为源代码

enter image description here

2)更新参数值

  1. $BuildTypeId - 这是你想要触发添加到

  2. $NumberOfDays配置的ID - 这是天数提前,你要安排

  3. 触发还有为admin /管理员嵌入在脚本=用户名/密码为REST API

一个做到这一点,你应该可以看到创建了计划的触发认证/更新每次建立第一个配置时间

enter image description here

希望这有助于

+0

听起来前途,就这还构建链的范围内工作?我也被指向https://github.com/rhysgodfrey/team-city-delayed-finish-build-trigger来自一个同事 – Ahmad

+0

ooo不错 - 我不知道插件存在。如果您有构建链设置,那么TeamCIty会根据您为依赖关系进行的设置来处理是否需要重新构建第一个配置。 –

+0

当我有机会并让你知道它是如何工作的时,我会试试这个 – Ahmad

相关问题