为TeamCity创建回滚构建

jfc*_*c37 5 teamcity tfs

我们有一个每晚TeamCity构建版本,它将最新代码发布到我们的测试网站,恢复数据库以匹配生产,然后应用我们在TFS中的任何模式和数据更改.如果此夜间构建失败,则网站将关闭,直到我们手动修复代码和/或数据库脚本并重新启动构建.

我想要的是自动回滚到上一次成功构建,以便尽管有任何构建中断,网站仍然可用.

花了一点时间调查后,这是我提出的解决方案:

  1. 每晚构建运行,在TFS中创建一个新标签(类似于Nightly-build- {build number})
  2. 创建一个新的TeamCity构建,在每晚构建运行后触发
  3. 找到最后一个成功的每晚构建号码
  4. 在TFS中获取与该内部版本号标签相关的版本
  5. 回滚构建(如果每晚构建成功完成则无关紧要)

我不知道的是如何使回滚构建获得基于标签的版本.

对此或其他解决方案的任何帮助将不胜感激.

干杯.

Joh*_*err 5

明智地使用TeamCity REST API可能会在这里工作.我从这个问题中解决了一些问题,这个问题涵盖了同一个领域.你可能会做这样的事情(我只是在这里吐痰):

  1. VerifyBuild按照步骤2 创建配置.
  2. 创建RollbackBuild可以从给定标签部署的配置,其构建号参数化为%rollback.buildnumber%

VerifyBuild:

  1. 使用Rest API 列出最近的夜间生产部署
  2. 如果最近的部署是SUCCESS,那么你就完成了.
  3. 如果最近的部署是FAILURE,那么获取上次成功构建的内部版本号.
  4. 使用REST API来设置%rollback.buildnumber%RollbackBuild最后一个成功的版本号.
  5. 使用REST API来排队一个RollbackBuild.

我建议使用这种方法,因为我不知道如何RollbackBuild在结账前动态获取正确的标签,所以我用VerifyBuild它来预先填充它.