2017-08-30 102 views
0

我想配置bitbutcket來觸發jenkins構建。BitBucket WebHook Jenkins

我花了一些時間研究這個問題,所有的答案都來自幾年前,還沒有找到任何指南,因爲事情似乎已經改變。

我在做什麼: bitbucket推送到特定的分支觸發構建。

我得到了什麼: Bitbucket Web鉤子在推送到任何分支時向Jenkins發出HTTP請求。我還在Jenkins上安裝了Bitbucket插件,在作業配置Build when a change is pushed to BitBucket中添加了一個複選框。這個複選框似乎不起作用(儘管我推送到SCM部分中的配置分支,但我可能會設置錯誤?最小文檔爲此)。

問題1:Bitbucket不會觸發GET,而是導致403的另一個請求。我使用郵遞員進行了測試,它使用GET,但不能使用POST。

問題2:這個HTTP構建請求在推送到任何分支時觸發。雖然構建仍然侷限於某個分支,但似乎沒有必要一直重建。

我該如何解決這些問題? Bitbucket在自定義這個過程中似乎不太靈活。 bitbucket的Jenkins插件有很多'壞'評論。開發人員目前如何做到這一點?

回答

0

您的Jenkins URL是否可以從您的bitbucket服務器訪問?如果是的話,它應該相當簡單。您將存儲庫中的webhook添加爲http://<url-of-jenkins>/git/notifyCommit?url=<url-of-repository>。當jenkins接收到這個POST時,它會自動觸發這些作業,這些作業使用這個git倉庫和你在webhook中給出的URL。
但您還需要確保您的Build Schedule已設置爲空作業。否則它不會被觸發。您可以指定網絡掛接網址分支太
見詹金斯CI服務器Push Notification from repository這裏
https://wiki.jenkins.io/display/JENKINS/Git+Plugin

+1

優秀的,謝謝。我已經設置了它,它的工作原理,但它建立在推動任何分支,這是預期的? – OrangePot

+0

它將基於您在jenkins作業中設置的「分支說明符」進行構建。如果你的工作,你將分支設置爲'develop',那麼只有來自該分支的更改才能觸發此作業。 – hayderimran7

+1

對於那些在同一條船上的人,我通過指定分支並省略了bitbucket url webhook中的「.git」來實現這個工作。 (要指定分支,請參閱上面的鏈接) – OrangePot

1

具體的解決方案 - 爲到位桶插件網絡掛接到詹金斯位桶和的最新版本已經商業化目前的價格大約是4800美元,這是早些時候免費提供的,因此,想要節省費用的人可以使用比特桶的webhooks功能去替代解決方案: -

創建webhook的步驟: -

BitBucket Side

1)轉到你的bitbucket倉庫,點擊倉庫設置,在WORKFLOW got for WEBHOOKS選項下創建一個webhook。

一)建立網絡掛接的: - URL https://JenkinsserverURL/git/notifyCommit?url=https://bitbucket.repository-link/repository.git

b)在名稱選項卡,給任何名稱你選擇的

C)保存前單擊測試連接。確保你獲得http狀態200 d)查看你的日誌詳細信息,檢查你的請求和回覆是否正確。

事情打理從 詹金斯方: -

1)請在到位桶網絡掛接提到確保倉庫是在詹金斯作業中使用。 2)在SCM選項中,激活/選擇Poll SCM選項,不要在日程表中提及任何內容,將其留空。 3)配置休息作業,

每當您的git倉庫觀察到任何更改時,自動生成將在Jenkins中觸發。默認情況下,推動觸發器被激活,如果你想激活其他動作,請在創建webhook時選擇這些事件。

***到指定倉庫網絡掛接分支: -

http://yourserver/git/notifyCommit?url=<URL of the Git repository>[&branches=branch1[,branch2]*][&sha1=<commit ID>] 

乾杯,