我们打算关注Semantic Versioning我们的网络应用程序,它看起来非常好。现在,詹金斯用作CI/CD工具。我们希望使用Octopus Deploy作为工件存储和CD工具,也用于快速重新部署/回滚和其他配置功能。如何根据语义版本自动增加Web应用程序版本?
八达通需要具有混凝土版本的软件包(例如:1.2.4)。因此,我们还需要对我们的Web应用程序进行强大的版本控制否则,如何检测部署的版本是否有错误。
解描述here不是透明的和不完全匹配于语义版本:
[assembly: AssemblyVersion("1.0.*")]
因为,补丁版本应递增一个接一个的从0开始,不从“随机”数,并在次要增量后重置。
对于我的意见 - 最好将版本存储在存储库中与包中相同的视图(1.2.4)中。但我发现如何实现它只有这种方式:
- 手动增加前提交 - 不舒服,有风险。
- 提交前自动增加SVN/Git挂钩 - 需要配置每个工作站。
- 从CI工具和提交自动增加 - 使用CI监视对存储库中的更改进行循环依赖。
是否有任何其他方式来实现与存储库中的平等版本控制,就像在Web应用程序的包中一样?或者,也许这是不必要的?
UPDATE 2017-02-28:我们发现Jenkins可以跳过特定用户或特定消息的提交(在高级设置中)。它解决了CI工具和提交自动递增的问题(CI监视和存储库中的更改之间的循环依赖关系)。
您的CD/CI管道的哪一部分产生八达通将消耗的软件包? – gvee
经过连续构建,Jenkins将软件包打包并推送到八达通,并自动部署到开发环境。 –
什么运行构建?我问,因为在我们的商店中,构建定义是版本设置的地方。也;你见过Jenkins的[这个插件](https://wiki.jenkins-ci.org/display/JENKINS/semantic-versioning-plugin)吗? – gvee