看起來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