Tfs 为TeamCity创建回滚构建

Tfs 为TeamCity创建回滚构建,tfs,teamcity,Tfs,Teamcity,我们有一个每晚的TeamCity构建,它向我们的测试网站发布最新代码,恢复数据库以匹配生产,然后应用我们在TFS中的任何模式和数据更改。 如果夜间构建失败,网站将关闭,直到我们手动修复代码和/或数据库脚本并重新启动构建 我想要的是自动回滚到上一次成功的构建,这样即使有任何构建中断,网站仍然可用 在花了一点时间调查之后,我提出了以下解决方案: 夜间构建运行,在TFS中创建一个新标签(类似于夜间构建-{build number}) 创建一个新的TeamCity构建,该构建在夜间构建运行后触发 查找上

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

我想要的是自动回滚到上一次成功的构建,这样即使有任何构建中断,网站仍然可用

在花了一点时间调查之后,我提出了以下解决方案:

  • 夜间构建运行,在TFS中创建一个新标签(类似于夜间构建-{build number})
  • 创建一个新的TeamCity构建,该构建在夜间构建运行后触发
  • 查找上一次成功的夜间构建编号
  • 在TFS中获取与该版本号标签相关的版本
  • 回滚构建(夜间构建是否成功完成并不重要)
  • 我不知道的是如何让回滚构建基于标签获取版本

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


    干杯。

    明智地使用TeamCity REST API可能会在这里奏效。我从中抄袭了一点,它涵盖了一些相同的领域。你可以这样做(我只是在这里吐痰):

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

  • 将Rest API用于最新的夜间生产部署
  • 如果最近的部署成功,那么您就完成了
  • 如果最近的部署失败,则获取上次成功生成的生成编号
  • 使用Rest API将
    %rollback.buildnumber%
    RollbackBuild
    回滚到上一个成功的生成编号
  • 使用Rest API创建一个
    RollbackBuild
  • 我之所以提出这种方法,是因为我不知道如何在签出之前动态获取
    RollbackBuild
    的正确标签,所以我使用
    VerifyBuild
    来预填充它