关于使用 CI / CD 管道的语义版本控制发布的一般问题

Posted

技术标签:

【中文标题】关于使用 CI / CD 管道的语义版本控制发布的一般问题【英文标题】:General question on semantic versioning releases using CI / CD pipeline 【发布时间】:2019-05-08 16:05:45 【问题描述】:

我还没有找到关于使用 Azure DevOps(服务器)CI/CD 对软件版本进行语义版本控制的明确指南。

我的基本理解是,我将为我们的团队建立一个 CI 管道,以便我们获得构建失败通知、测试执行、代码覆盖、静态代码分析甚至更多好处的好处。

CD 管道接续 CI 管道,完成后在不同环境中推出工件。

使用这种方法对我来说似乎没有意义。由于开发人员没有注意或团队想要丢弃而失败的构建怎么办?此类构建不会进入生产环境,但可能会用完版本号,从而导致我们的版本控制方案出现空白。

您对使用 CI/CD 管道对软件版本进行语义版本控制的经验或方法是什么?你会挑选建筑吗?您是否有用于构建版本的单独构建管道?

【问题讨论】:

【参考方案1】:

    不会部署失败的构建。对于在部署到较低环境时成功但未通过 QA 或集成测试的构建,您可以设置审批门,以便在发布到较高环境之前必须有人批准。

    如果您构建应用程序的 1.0.1 版本并将其部署到 dev 并且效果不佳,这并不意味着 1.0.1 版本不存在。它存在。它由特定的代码资产组成。这很糟糕,您的用户永远不会看到它,但那很好。如果用户看到版本 1.0.1 跳转到 1.0.94,这有什么关系?

【讨论】:

所以我从您的回答中得出的主要结论是:失败的构建无关紧要,应该跳过低质量的版本,转而使用更强大的版本。版本差距并不重要,只要它在补丁级别。主要和次要版本应该仍然有些连续。也许你可以确认后者? @RenéSchindhelm,版本中的差距是经常和预期的,包括主要和次要序列,而不仅仅是补丁。间隙数是 MajorGaps

以上是关于关于使用 CI / CD 管道的语义版本控制发布的一般问题的主要内容,如果未能解决你的问题,请参考以下文章

如何根据语义版本控制自动增加 Web 应用程序版本?

.NET Core WebJob 控制台应用程序 CI/CD 使用 Azure DevOps Pipelines

CI 如何影响语义版本控制?

在哪里指定 GitLab ci/cd 管道的存储库凭据?

Gitlab CI/CD 自动标记发布

sh travis-ci或任何其他ci的自动语义版本控制