审查分支合并后,Gitlab CI自动为主分支重新设置基础

我们使用同行评审流程,要求评审人员完成后合并到Review分支中。

事情是,经过审查,我们希望我们的master分支能够自动根据Review分支的内容进行基础调整。这将反映我们当前的手动流程,其中回购维护人员手动将审阅分支的基础重新编入母版以进行部署。

我们如何实现这种自动化?

i_michael 回答:审查分支合并后,Gitlab CI自动为主分支重新设置基础

这可以通过gitlab-ci管道任务来实现。本质上,您将需要合并以掌握和推送。不幸的是,gitlab运行程序没有直接的方法来推送到远程。

以下是解决方法

  • before_script中设置ssh密钥
  • 在本地进行git更新
  • 推送到远程

下面的示例代码

merge_to_master:
  before_script:
  - which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
  - eval `ssh-agent -s`
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh  
  - ssh-keyscan -H <Your gitlab server> >> ~/.ssh/known_hosts
  - ssh -vT git@<Your gitlab server>
  variables:
   VERSION: "$CI_PIPELINE_ID"
   VERSIONNAME: "$CI_COMMIT_REF_SLUG"
  only:
   - <Review* or similar>
  script:    
    - export LC_CTYPE=en_US.UTF-8
    - git config --global user.email "Some user email - Typically the machine user"
    - git config --global user.name "Some name"
    - git checkout master
    - git merge $CI_COMMIT_REF_NAME
    - git push ssh://git@<Your gitlab server>/<Repo> HEAD:master
  stage: dev_deploy

$SSH_PRIVATE_KEY-包含git专用SSH私钥的环境变量,请参考https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

[ci skip]-仅在您要在推送后跳过构建的情况下添加

本文链接:https://www.f2er.com/3169072.html

大家都在问