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

问题求助: Gitlab 如何触发分支自动合并

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

    有三个分支。 dev, main, prod.

    需求:每当我在 gitlab 将 dev 合并到 main 分支。自动触发 main 分支合并到 prod 分支。

    写了几个 CI/CD 都有不对,特来问问大佬们

    5 条回复    2024-03-07 17:56:17 +08:00
    Jack927
        1
    Jack927  
       286 天前
    这样可行?

    ```
    only:
    - main
    before_script:
    - >
    if ! git log -1 --pretty=%B | grep -qE "Merge branch 'dev' into 'main'"; then
    echo "无须处理...";
    exit 0;
    fi
    script:
    # 这里做你的合并
    - 'git merge main prod'
    ```
    GKD
        2
    GKD  
    OP
       286 天前
    @Jack927 直接在 CI/CD 里执行 git 命令会有权限问题。 我现在准备用 GITLAB API 来实现。应该可行。
    贴个错误
    ```
    Fetching changes with git depth set to 20...
    Initialized empty Git repository in /root/builds/dRuCU3mz/0/York.Yang/git/.git/
    Created fresh repository.
    Checking out d8e5add6 as detached HEAD (ref is main)...
    Skipping Git submodules setup
    Executing "step_script" stage of the job script
    $ git merge origin/main origin/prod
    merge: origin/prod - not something we can merge
    ERROR: Job failed: Process exited with status 1
    ```
    chf007
        3
    chf007  
       286 天前
    只能 api 实现吧
    sampeng
        4
    sampeng  
       286 天前
    友情提示。千万别干这种自动的事。偷懒一时爽,代码消失哭的时候在后面
    guanzhangzhang
        5
    guanzhangzhang  
       286 天前
    你 git merge 之前 git fetch origin/main 试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   645 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:00 · PVG 06:00 · LAX 14:00 · JFK 17:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.