首页 文章

TeamCity:更改一个VCS root使用的修订版而不破坏构建链?

提问于
浏览
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(来源:1002,配置:6)以来,我们将部署的设置更改为LIVE,这导致了Config VCS根目录的新版本(配置: 7) . 现在我们想要使用Config:7将已知良好的Source:1002部署到LIVE,但是构建链坚持使用Config:6来维护快照 .

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

我们已经将后续更改提交到Source中,我们不想将其置于LIVE中,所以我不能简单地从一开始就重新运行所有内容 .

1 回答

  • 0

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

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

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

    然后,我从[Deploy to TEST]添加了一个新的工件依赖项到[Get Config],配置为从"Last successful build"获取工件 . 因此,[Deploy to TEST]将始终使用最新的配置运行,即使我们需要对其进行最后一分钟的更改,而不会影响构建链或扭曲软件包版本 .

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

相关问题