GKD
V2EX  ›  GitLab

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

  •  
  •   GKD · Mar 7, 2024 · 4635 views
    This topic created in 813 days ago, the information mentioned may be changed or developed.

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

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

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

    5 replies    2024-03-07 17:56:17 +08:00
    Jack927
        1
    Jack927  
       Mar 7, 2024
    这样可行?

    ```
    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
       Mar 7, 2024
    @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  
       Mar 7, 2024
    只能 api 实现吧
    sampeng
        4
    sampeng  
       Mar 7, 2024
    友情提示。千万别干这种自动的事。偷懒一时爽,代码消失哭的时候在后面
    guanzhangzhang
        5
    guanzhangzhang  
       Mar 7, 2024
    你 git merge 之前 git fetch origin/main 试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2527 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 15:34 · PVG 23:34 · LAX 08:34 · JFK 11:34
    ♥ Do have faith in what you're doing.