ci/cd 实践中的一个小问题

2022-05-17 21:15:51 +08:00
leiuu  leiuu

例如我有多套环境。 架设主要采用主干模式。

假设现有流程大致如下:

  1. 开发从 master 创建 feature-x 分支
  2. 在 feature-x 分支 开发代码本地测试通过
  3. 推送分支到远程
  4. 手动构建和部署 feature 分支代码至测试环境
  5. review 代码
  6. 修改代码重测直至 review 修改都完毕
  7. 合并代码至 master ,删除 feature-x 分支
  8. 手动构建和部署 master 分支代码至线上环境

假设想要自动化这一个流程该如何做?

  1. master 分支触发 ci 、cd 生产环境这里没有问题,可以通过监测 master 分支代码变化,但 feature 分支每次是不同名称的,还可能存在多个 feature 分支,如何触发测试环境 ci 、cd

  2. 整体流程不知道是否有问题,为了自动化哪些可以再优化

此外一般只考虑通过开源或者免费软件支持整个流程。 以上是实践中的一些困惑,望解答,谢谢大佬们。

1629 次点击
所在节点   程序员  程序员
10 条回复
yidinghe
yidinghe
2022-05-17 21:22:06 +08:00
每个测试环境有一个专属分支。想要部署到哪个测试环境,就合并到对应的分支。
leiuu
leiuu
2022-05-17 21:28:08 +08:00
@yidinghe 👍
是一个方法 但感觉有点打破主干开发模式 需要固定维护 master + test 分支了
还有点小问题就是 test 和 master 如何同步也会是个问题
billlee
billlee
2022-05-17 21:28:08 +08:00
一般是 merge request 触发
leiuu
leiuu
2022-05-17 21:31:10 +08:00
@billlee 发起 MR 时触发 CI/CD 应该可以 但有个细节 发起后更新了带合并分支的代码 似乎不会触发重新部署
billlee
billlee
2022-05-17 21:33:33 +08:00
@leiuu 应该是 open 状态的 mr 关联的分支每次 push 都会触发吧?不知道你用的是什么系统
leiuu
leiuu
2022-05-17 21:38:00 +08:00
Senorsen
Senorsen
2022-05-18 09:18:23 +08:00
你说的这些基本是代码仓库和 CI/CD 的基操吧,不管是 GitLab 全家桶还是 GitLab 应该都能配出来
Senorsen
Senorsen
2022-05-18 09:19:05 +08:00
- 还是 GitLab+Jenkins 等应该都能配出来
betainCao
betainCao
2022-05-18 10:00:43 +08:00
打 tag 啊,给分支打 tag 触发就完事了
gollwang
gollwang
2022-05-18 13:20:43 +08:00
可以指定 cicd 触发情况为非 master 分支触发,换句话说,master 一套,非 master 一套

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

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

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

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

© 2021 V2EX