DevOps 开发者指南:版本管理与自动化发布实践
1. 共享版本号
在软件开发过程中,开发、运维和业务部门可能会使用各自的版本号来表示同一软件版本,这就形成了版本号的“动物园”。在 DevOps 实践中,为跨部门的版本找到共享名称至关重要。
使用版本控制系统(如 Subversion)来共享版本号是个不错的选择,Subversion 修订号具有以下优点:
- 唯一性 :在一个 Subversion 仓库中,修订号是唯一的。
- 自动递增 :由 Subversion 自动递增,无需编写容易出错的脚本。
- 稳定性 :相比 Jenkins 构建作业名称(易重命名)和 Jenkins 作业编号(不唯一),Subversion 修订号更稳定。
2. 访问修订号
从 Jenkins 中访问 Subversion 修订号并不困难,可以使用 Jenkins 的 postbuild Groovy 插件。以下是根据定义的基线访问和传播修订号的代码示例:
ver = manager.build.buildVariables.get("RC")
manager.createSummary("gear2.gif").appendText(ver, false)
if(manager.build.result.isBetterOrEqualTo(hudson.model.Result.UNSTABLE)) {
def cmd = "svn log h