我们正在尝试使用Gitlab / Gitlab + jenkins构建CI。我们希望拥有的流程是:
当前,我们看到CI作业在源分支(要合并)上而不是在合并分支上(冲突检查之后)进行操作。如果CI成功,是否可以在合并分支上执行CI而无需推送到主节点? (仅在审核员批准后按下)
谢谢
答案 0 :(得分:1)
应该可以在GitLab Pipeline或Jenkins作业中为您手动进行此操作。像
branch=`git branch | grep \* | cut -d ' ' -f2`
git checkout master
git merge $branch
然后,您可以在已经合并到主版本中的版本上运行所有测试。我相信这已经是Bors-NG之类的程序了,但是对于GitHub:
https://github.com/bors-ng/bors-ng
如果存在合并冲突,则必须中止操作,并且还必须确保功能分支和母版都在运行器/执行器上。 git repos有一些优化,您只可以使用--depth克隆/获取部分历史记录。
对于GitLab,您还可以等待他们正在调用“预期的合并管道”的功能,并且可以在此处了解更多信息:
https://gitlab.com/gitlab-org/gitlab-ee/issues/7380
尽管它们会在用户按下合并后运行,但是我认为最终结果还是一样;您需要在实际合并完成之前对合并结果进行测试。
他们将3月22日作为里程碑,所以离它不是很远!看来它将成为GitLab企业版的一部分,因此要花钱。
答案 1 :(得分:0)