你们都怎么发布 release 版本的呀

2020-05-25 10:35:56 +08:00
 myCupOfTea
现在公司项目发布都没有做版本控制,日志都不知道是啥版本的
我的想法就是在 ci 里做版本自增长然后合并代码,就像 lerna publish 那样,但是 lerna publish 是有一个选择发布
patch,minor,major 这个过程的.
那么有没有一个发布管理平台让运维人员控制发布版本(同时我还可以在构建的环境获取到该版本变量取到),最好顺带了把构建时环境变量设置一并带上的系统呢
4298 次点击
所在节点    程序员
19 条回复
myCupOfTea
2020-05-25 10:44:40 +08:00
我现在有个想法,直接用当前 commit 的 hash 做版本号算了
qoo2019
2020-05-25 10:46:05 +08:00
为啥不用 tag ?
yjxjn
2020-05-25 10:47:46 +08:00
Jenkins ?
TinySec
2020-05-25 10:51:49 +08:00
小团队可以使用 gitea + drone 的持续集成方案,成本很低,
nightwitch
2020-05-25 10:53:05 +08:00
开源项目常见做法:
要发布的时候 commit 打一个 tag, 'release-xxx' , 方便后面追踪 release 对应的源码版本. CI/CD 看到 tag 后进行编译-打包-部署的流程.
xizismile
2020-05-25 11:01:15 +08:00
1.控制版本号还是开发来定比较好。找相关的技术负责人定一下发布的版本号标准(主版本,次版本,修复版本)

2.线上环境获取构件的版本号,你可以看一些插件类的。比如 java 的话有 git-commit-id 的插件,maven 打包的时候会把 git 相关的信息打包进项目里面,然后在线上就能直接访问到了
hantsy
2020-05-25 11:19:17 +08:00
1.Git 可以 Tag,这个一般可以根据 Feature 开发计划进行。
2. 一般普通的项目开发,采用敏捷发布(比如完全走 Github Flow,Code Review,CI/CD 测试通过,直接 merge 后就自动发布),不需要版本号。除非你的项目是一个公开项目,有很多其他项目依赖它,你可以另外走 Git Flow,定制严格版本发布计划。
myCupOfTea
2020-05-25 11:21:29 +08:00
@qoo2019 因为老板不让干...
myCupOfTea
2020-05-25 11:22:39 +08:00
@hantsy 你说的这个流程没错,但是不带版本号 错误日志没法区分是那个版本出现的 bug,蛋疼呢
myCupOfTea
2020-05-25 11:27:27 +08:00
@nightwitch 俺也这么想的,主要现在项目负责人都是测试人员,他们基本不管这些,开发人员也不知道啥时候发布呢,我去跟老板谈谈吧,还是打 tag 比较好
myCupOfTea
2020-05-25 11:30:10 +08:00
其实还有一个很大的问题啊,因为是微服务架构,如果都是项目负责人打 tag,也太多了,但是各个服务负责人自己打 tag 又不靠谱ヽ(°◇° )ノ
dullwit
2020-05-25 11:41:30 +08:00
git flow 结合 jenkins
myCupOfTea
2020-05-25 11:54:18 +08:00
@dullwit 微服务拆的太细,仓库太多属实蛋疼,感觉只有改成 monorepos 才方便处理
cheng6563
2020-05-25 12:29:26 +08:00
我司是上线前以日期为版本号打 tag 。这样同一次上线的不同服务版本号相同。只有一些基础框架项目不怎么改的是用 1.0.0 这样的版本号
myCupOfTea
2020-05-25 12:36:36 +08:00
@cheng6563 主要服务多是一方面,各个服务负责人的态度不一致,甚至经常出现代码提交了,但是依赖更新了没有 deploy(指的 spring-cloud 场景下的 common 和 client, 当然本来也应该 cicd 自动去 deploy,这种场景大多能避免,不过运维不知道为啥不乐意)
msg7086
2020-05-25 12:45:17 +08:00
商业软件 Git-tags,开源软件可以直接 rev 编号或者 git hash 。我开源软件是 tags 打 rev 编号发的。
hantsy
2020-05-25 13:28:28 +08:00
从你们现状,真的很佩服你们的领导,最基本的 devops 流程都没有,就上了微服。心真的大,如果一个自动化流程都没跑通过,我是坚决不会做微服的。

我坚守一条最基本的原则: 没有基本的 devops 设施的微服务开发都是假装在做微服务,没有写测试的敏捷开发都是假敏捷。
baymax123456
2020-05-25 14:06:04 +08:00
maven 有打包时自动生成 git 版本号的插件
cco
2020-05-25 14:10:14 +08:00
看领导脸色~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675122

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX