我最近开始使用Jenkins,我需要一些帮助来创建管道。
我想创建以下管道: 对于Gitlab中从开发到主服务器的每个合并请求,触发运行端到端测试的Jenkins作业,并且只有在测试成功时才合并Gitlab中的分支。
我发现以下文章给出了我需要的大部分内容的解释: https://vetlugin.wordpress.com/2017/01/31/guide-jenkins-pipeline-merge-requests/
我还在寻找一个问题的答案: Jenkins如何使用端到端测试(成功/失败)的结果响应Gitlab,那么Gitlab将知道是否合并到分支机构?
请指教, 谢谢!
答案 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(合并请求)。