0

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

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

我希望使用 Teamcity 自动化这个过程。我的预期解决方案是在部署构建成功后几天启动 Teamcity 构建x(构建步骤的细节无关紧要,因为我可能会再次使用 powershell 来删除暂存槽)

该计划指示我研究 Teamcity 构建链、快照依赖项等。

到目前为止我所做的是

  • 通过在部署构建配置上创建快照依赖项来正确创建构建链,并且
  • 创建了一个完成构建触发器 构建链

目前,当前方法 在部署构建成功后立即启动依赖构建“删除 Azure 暂存 Web”(B) 。但是,我希望这是x几天后的延迟构建。

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

我也研究了 Schedule Trigger 选项,但对于如何使用它来实现这一点有点迷茫。据我了解,使用 cron 表达式将导致构建持续运行,这不是我想要的——我希望构建B只执行一次。

4

1 回答 1

1

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

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

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

在此处输入图像描述

2)更新脚本中的参数值

  1. $BuildTypeId- 这是您要添加触发器的配置的 ID

  2. $NumberOfDays- 这是您要为其安排触发器的提前天数

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

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

在此处输入图像描述

希望这可以帮助

于 2016-08-10T12:45:15.923 回答