V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leiuu
V2EX  ›  程序员

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

  •  
  •   leiuu · 50 天前 · 995 次点击
    这是一个创建于 50 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    假设现有流程大致如下:

    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. 整体流程不知道是否有问题,为了自动化哪些可以再优化

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

    10 条回复    2022-05-18 13:20:43 +08:00
    yidinghe
        1
    yidinghe  
       50 天前 via Android
    每个测试环境有一个专属分支。想要部署到哪个测试环境,就合并到对应的分支。
    leiuu
        2
    leiuu  
    OP
       50 天前
    @yidinghe 👍
    是一个方法 但感觉有点打破主干开发模式 需要固定维护 master + test 分支了
    还有点小问题就是 test 和 master 如何同步也会是个问题
    billlee
        3
    billlee  
       50 天前   ❤️ 1
    一般是 merge request 触发
    leiuu
        4
    leiuu  
    OP
       50 天前
    @billlee 发起 MR 时触发 CI/CD 应该可以 但有个细节 发起后更新了带合并分支的代码 似乎不会触发重新部署
    billlee
        5
    billlee  
       50 天前
    @leiuu 应该是 open 状态的 mr 关联的分支每次 push 都会触发吧?不知道你用的是什么系统
    leiuu
        6
    leiuu  
    OP
       50 天前
    Senorsen
        7
    Senorsen  
       49 天前 via iPhone
    你说的这些基本是代码仓库和 CI/CD 的基操吧,不管是 GitLab 全家桶还是 GitLab 应该都能配出来
    Senorsen
        8
    Senorsen  
       49 天前 via iPhone
    - 还是 GitLab+Jenkins 等应该都能配出来
    betainCao
        9
    betainCao  
       49 天前
    打 tag 啊,给分支打 tag 触发就完事了
    gollwang
        10
    gollwang  
       49 天前
    可以指定 cicd 触发情况为非 master 分支触发,换句话说,master 一套,非 master 一套
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1082 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:20 · PVG 04:20 · LAX 13:20 · JFK 16:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.