2017-06-07 24 views
0

我最近做了從Subversion到Git的所有回購工作。但是,在svn中,我們已經提交了鉤子,以便我們的Jenkins作業可以運行在任何一個分支被檢入的位置。現在,我試圖使用Gitlab進行設置,似乎只有一個地方可以添加Web鉤子。它看起來像任何時候檢查到任何分支,Web鉤子將運行。這意味着如果我有一個與jenkins_job_A關聯的branch_A,則可以將某些內容檢入到branch_B中,並且jenkins_job_A的提交掛鉤仍然會運行。是否有分支的方式來配置這些Web鉤子?或者是否有某種腳本可以檢查每個分支,它們將作爲提交鉤子?或者(我的恐懼)這個功能在Gitlab中不被支持?運行Jenkins構建無論哪個分支簽入Gitlab

回答

1

我猜你設置了GitLab來做一個post提交請求到http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>?理論上,這應該觸發對使用該URL配置的所有作業進行輪詢,並且在輪詢步驟中作業應該決定它們是否應該創建。在實踐中,這將不幸地導致所有工作開火。

我們通過將Job配置移動到Jenkinsfile中,然後使用a Multibranch Pipeline來解決此問題。

作爲替代方案,您還可以安裝GitLab plugin for Jenkins並使用Jenkins integration in GitLab。這將允許您在提交分支時提交正確的作業。缺點是它需要每個作業的配置。