标记一个 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 中更容易做到)。
您可以通过两种方式完成
在 运行 成功部署后,您可以 tag
使用特定标记将构建状态发送到 vcs,例如 dev-latest
。您可以连接您的 SIT 目标,使其具有基于此标签的触发器,并且 运行 无论何时标签移动到新状态
如果您使用的是 teamcity,更好的方法是设置 artefact dependent builds
。使用它,您可以使 SIT 在您的 DEV 目标上构建 dependent。每当您的 DEV 目标成功时,您的 SIT 目标可以通过依赖项从 DEV 目标下载相关的工件,然后继续其自己的链。您可以阅读更多相关信息 here
我正在 teamcity 中寻找一些类似于标签或标签的过程。当我从 teamcity 获取最后一次成功构建时,在 DEV 环境上成功部署后,我应该能够为该构建命名。我希望建立一个自动化流程,每当下一次成功部署完成时,旧工件就会被具有相同标签的新工件替换。这将始终为我提供最后一次成功部署的开发版本,并且具有相同的 URL。然后我可以使用这个版本进行 SIT 部署。如果 SIT 部署成功,我将对 SIT 构建进行同样的操作,进一步可用于 UAT。 UAT 和生产案例也发生了类似的事情。
我使用的是 teamcity REST API 和 shell 脚本。
您正在为您的代码库设置金丝雀部署。这个问题的答案确实取决于您选择的 VCS。 (在具有廉价标签的 git 中更容易做到)。
您可以通过两种方式完成
在 运行 成功部署后,您可以
tag
使用特定标记将构建状态发送到 vcs,例如dev-latest
。您可以连接您的 SIT 目标,使其具有基于此标签的触发器,并且 运行 无论何时标签移动到新状态如果您使用的是 teamcity,更好的方法是设置
artefact dependent builds
。使用它,您可以使 SIT 在您的 DEV 目标上构建 dependent。每当您的 DEV 目标成功时,您的 SIT 目标可以通过依赖项从 DEV 目标下载相关的工件,然后继续其自己的链。您可以阅读更多相关信息 here