Jenkins管道在Gitlab中进行合并请求

时间:2018-05-21 14:05:26

标签: jenkins gitlab jenkins-pipeline

我最近开始使用Jenkins,我需要一些帮助来创建管道。

我想创建以下管道: 对于Gitlab中从开发到主服务器的每个合并请求,触发运行端到端测试的Jenkins作业,并且只有在测试成功时才合并Gitlab中的分支。

我发现以下文章给出了我需要的大部分内容的解释: https://vetlugin.wordpress.com/2017/01/31/guide-jenkins-pipeline-merge-requests/

我还在寻找一个问题的答案: Jenkins如何使用端到端测试(成功/失败)的结果响应Gitlab,那么Gitlab将知道是否合并到分支机构?

请指教, 谢谢!

2 个答案:

答案 0 :(得分:2)

你没有告诉我们Gitlab和Jenkins是如何连接的,但我假设你使用了Jenkins Gitlab插件https://github.com/jenkinsci/gitlab-plugin。如果你不是,也许你应该:)

使用此插件,您可以整合'更深入的Jenkins和Gitlab,以及你的Jenkins构建将向Gitlab发送构建的结果。您会看到类似https://raw.githubusercontent.com/teeks99/gitlab-plugin-wiki-images/master/Setup_Example_img/Result_commit.png的内容。构建结果标记在已经过测试的提交附近。

在这种情况下,对于每个合并请求,您可以检查"合并是否构建成功"按钮(请参阅https://raw.githubusercontent.com/teeks99/gitlab-plugin-wiki-images/master/Setup_Example_img/Merge_progress.png)以在构建成功时自动合并代码。

查看Jenkins Gitlab插件README以获取更多信息和高级设置,例如在构建中测试合并的结果等。

答案 1 :(得分:1)

  

所以Gitlab会知道是否要合并到分支机构?

GitLab本身不必知道这个测试结果,它自己决定是否合并。

你的詹金斯工作应该,测试成功,call the right GitLab API  为了接受MR(合并请求)。