看起来GitHubPullRequestBuilder与Jenkins v2.0管道作业不兼容。
如何配置从GitHub拉取请求事件触发的管道作业?
关于这个主题的文档很少,我找不到任何这方面的例子。或者,最好在GitHub中创建一个Web挂钩来触发PR事件的管道作业?
答案 0 :(得分:34)
我有类似的问题。这对我有用
预REQ
在Github上
YourJenkinsURL/github-webhook/
pipeline { agent any stages { stage('Test') { steps { echo 'Hello World ...' } } } }
On Jenkins
+refs/pull/*:refs/remotes/origin/pr/*
${sha1}
就是这样。你们都准备好了。在您的仓库的主分支上创建PR现在应该触发您的Jenkins管道作业
一些观察
答案 1 :(得分:2)
使用Pipeline和GitHub拉取请求最直接的方法是将脚本放在名为Jenkinsfile
的存储库中,然后安装 GitHub Branch Source 插件。 Documentation
答案 2 :(得分:2)
简而言之,流程可以是这样的:
您将管道创建为代码并将其保存在项目根目录中名为Jenkinsfile
的文件中。该代码应描述您的项目将如何构建。请参阅此处以获取示例:https://jenkins.io/doc/pipeline/examples/
然后您应该在Jenkins中创建一个新的“Multibranch Pipeline Project”项目。您应该对其进行设置,以便扫描步骤1的回购。
现在每当你在第1步回购时打开一个新的PR分支时,分支将被检出并将根据其中包含的Jenkinsfile指令构建。您可以根据需要设置更多条件以及何时构建。
注意:
“Multibranch Pipeline Project”示例文档:https://jenkins.io/doc/book/pipeline-as-code/(向下滚动到Multibranch Pipeline Projects)
请记住,在赞美公关之后获取插件以建立公关不起作用。这里有一个讨论分析:https://github.com/jenkinsci/gitlab-plugin/issues/298有一些解决方法(在讨论中也有描述),但设置起来非常混乱。
答案 3 :(得分:0)
按照以下步骤在GitHub上生成的Pull请求上自动触发Jenkins作业
Jenkins工作配置
在Jenkins中下载通用Webhook触发器
Jenkins上的Git Hub配置
7。在jenkins上选择通用Webhook触发器 8。Generic Webhook Trigger Configuration on Jenkins,然后按照步骤9
9。执行完第7步后,Jenkins作业将在PullRequest上触发 10,需要步骤8才能从Pull Request Payload中获取信息 11。Branch configuration inside Generic Webhook Trigger to get Branch details from Pull Request
谢谢