为 TeamCity 创建回滚版本



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

我想要的是自动回滚到上次成功的构建,以便无论构建中断,网站仍然可用。

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

  1. 夜间生成运行,在 TFS 中创建新标签(类似于夜间生成{内部版本号})
  2. 创建一个新的 TeamCity 内部版本,该内部版本在夜间构建运行后触发
  3. 查找最后一个成功的每晚内部版本号
  4. 在 TFS 中获取与该内部版本号标签相关的版本
  5. 回滚构建(夜间构建是否成功完成并不重要)

我不知道的是,如何让回滚构建基于标签获取版本。

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

干杯。

明智地使用 TeamCity REST API 可能在这里有效。 我从这个问题中摘取了一些内容,它涵盖了一些相同的领域。 你可以做这样的事情(我只是在这里吐槽):

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

VerifyBuild

  1. 使用 Rest API 列出最新的夜间生产部署
  2. 如果最近的部署是成功的,那么你就完成了。
  3. 如果最近的部署是 FAILURE,则获取上次成功生成的内部版本号。
  4. 使用 Rest API 将RollbackBuild%rollback.buildnumber%设置为上次成功的内部版本号。
  5. 使用 Rest API 对RollbackBuild进行排队。

我之所以提出这种方法,是因为我不知道如何在结帐之前动态获取RollbackBuild的正确标签,所以我使用 VerifyBuild 来预填充它。

最新更新