标记多个提交的替代方案

时间:2018-06-15 13:46:41

标签: git jenkins continuous-integration continuous-deployment circleci

在我们的CI / CD管道中,我们正在寻找一种方法来使用cirle ci执行CI部分,使用Jenkins部署部分(技术限制阻止我们使用circle ci进行部署)。

我们已经为每个环境(测试,验收,生产)创建了一个分支,并让jenkins工作监听这些分支上的更改并在适用时部署它们。

但是,我们希望为每个通过CI的提交添加一个标记(例如“ci-passing”),并在jenkins作业中检查此标记。这样可以确保无法部署糟糕的代码。

我们考虑过创建动态标签(例如“ci-pased- {some timestamp}”),但对此感到不确定,因为这会引入很多标签。是否有任何类型的替代标记可以在不同的提交中重复使用。

我们知道您可以移动标记,但我们希望在每次传递ci的提交上保留标记,以便可以随时重新部署任何提交。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

好吧,您正在为冲突的要求做好准备:一方面,您想要to add a tag to every commit that has passed the CI;另一方面,您在抱怨this introduces a lot of tags:)

我个人每次通过CI的提交都会

  • 添加一个ci-passed-{some timestamp}标签-这将为您提供历史/趋势的观点,并具有识别各种可部署版本的能力(假设您最终接受了这是您希望从上述冲突中得到的支持)
  • 添加/更新ci-passed-latest(或类似标签)-为您提供最新的可部署版本(通常是最常见的用例),而不必找出应该使用哪个特定的ci-passed-{some timestamp}标签。

您还可以通过在标签名称中对环境进行编码来扩展此方案,以清楚地标识通过了哪些测试/验收/生产(或可能在您的CD管道中添加其他任何阶段)检查。