【问题标题】:Tagging alternative for multiple commits标记多个提交的替代方案
【发布时间】:2018-06-28 00:45:12
【问题描述】:

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

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

然而,我们希望为每个通过 CI 的提交添加一个标签(例如“ci-passed”),并在 jenkins 作业中检查这个标签。这是为了确保无法部署糟糕的代码。

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

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

任何建议将不胜感激。

【问题讨论】:

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


    【解决方案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 管道中)检查。

    【讨论】:

      猜你喜欢
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多