看起来GitHubPullRequestBuilder与Jenkins v2.0管道作业不兼容。如何从GitHub拉取请求触发Jenkins 2.0管道作业
如何配置管道作业从GitHub拉取请求事件触发?
有关此主题的文档很少,我找不到任何示例。或者在GitHub中创建一个Web钩子来触发PR事件中的管道作业更好?
看起来GitHubPullRequestBuilder与Jenkins v2.0管道作业不兼容。如何从GitHub拉取请求触发Jenkins 2.0管道作业
如何配置管道作业从GitHub拉取请求事件触发?
有关此主题的文档很少,我找不到任何示例。或者在GitHub中创建一个Web钩子来触发PR事件中的管道作业更好?
使用Pipeline和GitHub pull请求最直接的方法是将脚本放到名称为Jenkinsfile
的存储库中,然后安装GitHub Branch Source插件。 Documentation
简而言之,流程可以是这样的:
创建您的管道作为代码,并保存在一个文件中,在你的项目的根目录称为Jenkinsfile
。该代码应该描述你的项目将如何建立。请参阅此处的示例:https://jenkins.io/doc/pipeline/examples/
然后,您应该在Jenkins中创建一个新的“Multibranch Pipeline Project”项目。您应该设置此项以便扫描您的步骤1的回购。
现在,无论您的第1步回购中打开一个新的PR分支,该分支都将被检出并根据Jenkinsfile包含它的说明。您可以对构建内容和时间设置更多条件。
注:
“多枝管道工程” 的例子文件:https://jenkins.io/doc/book/pipeline-as-code/(向下滚动到多枝管道项目)
请记住,获取插件来构建一个公关表扬PR后不起作用。有一个讨论分析这里:https://github.com/jenkinsci/gitlab-plugin/issues/298有解决方法(也在该讨论中描述),但它们很难设置。
我有类似的问题。下面是我
预-REQ
在GitHub上
YourJenkinsURL/github-webhook/
pipeline { agent any stages { stage('Test') { steps { echo 'Hello World ...' } } } }
在詹金斯
+refs/pull/*:refs/remotes/origin/pr/*
${sha1}
就是这样。你一切都准备好了。创建您的回购主分支公关现在应该触发您詹金斯管道工作
一些观察
我们不能用多分支管道做同样的事吗?因为我想玩的分支不是主分支。 @Deepak Rao –
'构建触发器:检查'GitHub合并请求生成器',该选项不适合我。该插件已安装,因为该选项存在于未使用jenkins文件的其他项目中。有什么想法吗? – edthethird
只适用于组织成员的PR,还是仅适用于外部贡献者的PR? – elopio
@elopio,该插件可以选择从相同的存储库以及外部存储库启用/禁用PR构建。这不完全是你要求的,但可能足够接近。 –
这个官方[jenkinsci/workflow-demo](https://hub.docker.com/r/jenkinsci/workflow-demo/)docker image用于播放PRs测试和'Jenkinsfile'。我想知道是否有可能在PR上进行漂亮的红色和绿色检查,并且完全有可能([示例](https://github.com/jenkinsci/docker-workflow-plugin/pull/57)): )这里是一个[关于多分支工作流程的有用帖子](https://jenkins.io/blog/2015/12/03/pipeline-as-code-with-multibranch-workflows-in-jenkins/) – GabLeRoux