【问题标题】:TeamCity: change revision used by one VCS root without breaking build chain?TeamCity:在不破坏构建链的情况下更改一个 VCS 根使用的修订?
【发布时间】:2013-07-19 09:15:58
【问题描述】:

考虑以下构建配置:

[构建和打包] -> [部署到测试] -> [部署到实时]

我已经这样设置了:

  • [Deploy to TEST] 对 [Build & Package] 具有快照和工件依赖项。
  • [Deploy to LIVE] 对 [Deploy to TEST] 有快照依赖,对 [Build & Package] 有快照和工件依赖

这将所有构建很好地链接到一个构建链中,这使我们能够定期构建和打包,然后当我们准备好时,将链扩展到 TEST 环境中。它可以在这里放置一周进行测试,然后我们运行 [Deploy to LIVE] 配置,因为我们知道我们正在部署上周测试的相同二进制文件。太好了!

我们使用两个存储库,“Source”用于代码本身,“Config”用于部署参数。这允许 Ops 团队修改和跟踪部署/环境设置,而无需强制源 VCS 存储库增加修订,因此我们避免将环境/配置问题与源问题混淆。也很棒。

Config VCS 根连接到 [Deploy to TEST] 和 [Deploy to LIVE] 配置。

我们刚刚遇到的问题是,自从我们在一周前成功部署到 TEST (Source:1002, Config:6) 后,我们将部署的设置更改为 LIVE,这导致 Config VCS 根目录有了新的修订(配置:7)。现在我们想使用 Config:7 将已知良好的 Source:1002 部署到 LIVE,但是构建链坚持使用 Config:6 来维护快照。

我们如何强制 TeamCity 允许我们在 LIVE 中使用更新版本的配置,但保持构建链完整?

我们已经提交了对 Source 的后续更改,但我们还不想在 LIVE 中投入使用,所以我不能简单地从头开始重新运行所有内容。

【问题讨论】:

    标签: teamcity webdeploy


    【解决方案1】:

    我只是想更新这个问题,因为我似乎在为新项目设置管道时自己遇到了答案。

    关键基本上是添加一个新的 TeamCity 构建配置,专门用于从 VCS 获取配置 XML 文件并将它们存储为工件,例如[获取配置]。

    我从我们的 [Build & Package] 配置中删除了 Config VCS 根目录,从而将其与构建链断开连接,并将其附加到 [Get Config] 配置中。现在,当 [Get Config] 运行时,它基本上只是从 Config VCS 获取最新的配置 xml 文件并将它们存储为漂亮的版本化工件。

    然后,我从 [Deploy to TEST] 到 [Get Config] 添加了一个新的工件依赖项,配置为从“上次成功构建”中获取工件。因此,[Deploy to TEST] 将始终使用最新配置运行,即使我们需要在最后一刻对其进行更改,也不会影响构建链或扭曲包版本。

    另一个好处是,如果我们在不知不觉中弄乱了配置,使用“运行自定义构建”对话框,我们会还原并使用较旧的 [Get Config] 构建来运行具有已知良好配置的部署。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      • 2011-03-11
      • 2022-01-16
      • 1970-01-01
      • 2019-02-28
      • 2016-12-06
      相关资源
      最近更新 更多