发布版本?构建版本?聊聊持续交付中的版本号的设计和管理
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
在研发过程中,版本控制的重要性是公认的,但不同角色对“版本”的理解各有差异。产品经理、客户、市场以及项目管理办公室(PMO)主要关注外部发布的产品版本,包括版本的特性,它通常与产品规划相关。而研发和测试团队则更关注的是代码提交和提测的过程中产生的“版本(包)”,这些版本需要唯一的ID来标记每次构建的产出,并保证其唯一性。
在持续交付流水线中,构建制品版本的获取通常通过时间戳、版本控制系统的commit ID或环境标签来实现。代码获取时可以通过版本控制系统日志获得这些信息,并在流水线中传递。对于编译型语言,版本信息甚至会被添加至assemblyinfo中,用于兼容性判断。制品上传时,文件名会包含版本变量,同时如果使用CI/CD平台,构建版本需要作为制品的元数据发送给平台。
部署过程中,构建脚本应预留占位符,如“packagename-${build_id}”,以实现部署脚本的复用。在微服务架构中,版本号同样重要,它不仅在多仓库构建过程中作为记录代码提交的“指针方式”,也在多服务协同开发和微服务发布部署中发挥作用。
总之,版本号是整个研发流程中的关键连接点,它使得研发活动能够通过版本号串联起来。重视版本号的管理有助于变更的追溯和质量监管,使任何变化都能快速定位并修复。版本管理是配置管理的重要组成部分,对于大型团队或组织而言,版本混乱会导致协同和管理混乱,影响效率。
想要了解更多内容?