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

2022-05-17 21:15:51 +08:00
 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. 整体流程不知道是否有问题,为了自动化哪些可以再优化

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

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