0

考虑以下构建配置:

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

我已经设置了这些,以便:

  • [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) 后,我们将 deploy 的设置更改为 LIVE,这导致 Config VCS root (Config: 7)。现在我们想使用 Config:7 将已知良好的 Source:1002 部署到 LIVE,但是构建链坚持使用 Config:6 来维护快照。

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

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

4

1 回答 1

0

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

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

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

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

另一个好处是,如果我们在不知不觉中弄乱了配置,使用 Run Custom Build 对话框,我们会恢复并使用旧的 [Get Config] 构建来运行具有已知良好配置的部署。

于 2013-10-06T21:00:31.883 回答