标记一个 teamcity 构建,一旦它在开发中成功,就可以在 SIT、UAT 和 PROD 上部署

Label a teamcity build so that once it is success in dev, same can be deployed on SIT, UAT and PROD

我正在 teamcity 中寻找一些类似于标签或标签的过程。当我从 teamcity 获取最后一次成功构建时,在 DEV 环境上成功部署后,我应该能够为该构建命名。我希望建立一个自动化流程,每当下一次成功部署完成时,旧工件就会被具有相同标签的新工件替换。这将始终为我提供最后一次成功部署的开发版本,并且具有相同的 URL。然后我可以使用这个版本进行 SIT 部署。如果 SIT 部署成功,我将对 SIT 构建进行同样的操作,进一步可用于 UAT。 UAT 和生产案例也发生了类似的事情。

我使用的是 teamcity REST API 和 shell 脚本。

您正在为您的代码库设置金丝雀部署。这个问题的答案确实取决于您选择的 VCS。 (在具有廉价标签的 git 中更容易做到)。

您可以通过两种方式完成

  1. 在 运行 成功部署后,您可以 tag 使用特定标记将构建状态发送到 vcs,例如 dev-latest 。您可以连接您的 SIT 目标,使其具有基于此标签的触发器,并且 运行 无论何时标签移动到新状态

  2. 如果您使用的是 teamcity,更好的方法是设置 artefact dependent builds 。使用它,您可以使 SIT 在您的 DEV 目标上构建 dependent。每当您的 DEV 目标成功时,您的 SIT 目标可以通过依赖项从 DEV 目标下载相关的工件,然后继续其自己的链。您可以阅读更多相关信息 here