如何配置管道作业以从GitHub pull request事件触发?关于此主题的文档很少,我找不到任何示例。还是更好地在GitHub中创建web-hook以在PR事件上触发管道作业?
我曾经遇到了类似的问题。这是解决方法:
前置条件
在 Github 上
YourJenkinsURL/github-webhook/
pipeline { agent any stages { stage('Test') { steps { echo 'Hello World ...' } } } }
在 Jenkins 上
+refs/pull/*:refs/remotes/origin/pr/*
${sha1}
就这样。您已经全部设置好了。在您的repo的主分支上创建PR现在应该会触发Jenkins Pipeline任务。
一些观察
您需要将管道作为代码编写并保存在名为Jenkinsfile
的文件中,该文件位于项目的根目录下。该代码应描述项目如何构建。有关示例,请参见此处:https://jenkins.io/doc/pipeline/examples/
然后,您应该在Jenkins中创建一个新的“多分支管道项目”项。您应该设置这样的扫描步骤1的存储库。
现在,每当您在步骤1的存储库上打开新的PR分支时,该分支将被检出,并根据其中包含的Jenkinsfile指令进行构建。如果您想要更多地设置构建和何时进行构建的条件,则可以进行更多的设置。
注:
“多分支管道项目”的示例文档:https://jenkins.io/doc/book/pipeline-as-code/(向下滚动到“多分支管道项目”)
请注意,当在PR上进行评论后,使插件构建PR无效。有关此问题的讨论在此处:https://github.com/jenkinsci/gitlab-plugin/issues/298。虽然有解决方法(在该讨论中也有描述),但设置起来相当混乱。
Jenkinsfile
,然后安装GitHub分支源插件。文档。Jenkinsfile
。我在想是否可能在 PRs 上有那些漂亮的红色和绿色的检查,这是完全可能的(示例在此):) 这里还有一篇关于多分支工作流的有用文章。 - GabLeRouxCHANGE_TITLE
环境变量。请参阅env
文档以获取可用变量。 - Jesse Glick在 GitHub 上生成 Pull request 后自动触发 Jenkins 作业的步骤如下:
Jenkins 作业配置
在 Jenkins 中下载通用 Webhook 触发器
在 Jenkins 上进行 Git Hub 配置
7.在 Jenkins 上选择通用 Webhook 触发器 8.Jenkins 上的通用 Webhook 触发器配置并按照第9步操作
9.执行第7步后,Jenkins 作业将会被触发 10.第8步需要从 Pull request Payload 中获取信息 11.在通用 Webhook 触发器中配置分支以从 Pull Request 获取分支详细信息
谢谢