簡體   English   中英

BitBucket + Jenkins:僅在更改特定分支時觸發構建

[英]BitBucket+Jenkins: Trigger build only when specific branch is changed

以下是該問題的聲稱解決方案,雖然它似乎是一種解決方法,而不是一個明確的解決方案。 有沒有辦法,通過作業配置或bitbucket鈎子配置,我可以設置我的工作只有在推送特定分支時運行構建?

是否有可能僅從一個特定分支觸發Jenkins?

發布該問題已經過去了大約一年,我希望有一些插件更新可以在沒有上述鏈接所需的額外工作的情況下實現這一點,或者可能總是有一種簡單的方法,我只是沒有看到。

正如@Ryan泰勒已經說過你可以使用Bitbucket-Plugin:

  • 在你的Jenkins安裝Bitbucket插件
  • 將正常的帖子作為Hook添加到您的Bitbucket存儲庫( 設置 - >掛鈎 )並使用以下URL:

https:// YOUR.JENKINS.SERVER:PORT / bitbucket-hook

  • 按如下方式配置Jenkins項目:
    • 構建觸發器 時,在將更改推送到BitBucket時啟用構建
    • 源代碼管理下選擇GIT ; 輸入您的憑據並定義要構建的分支 (如** feature / *

通過這種方式,我有三個構建項目,一個用於所有功能,一個用於開發,一個用於發布分支。

最好的是,您不必為新的Jenkins項目添加新的鈎子。

上面提出的解決方案將比我自己更好,但我不認為Bitbucket插件允許分支特定的觸發器。

從Bitbucket插件文檔中,

在每次提交時,將觸發所有具有“在將更改推送到BitBucket時生成”選項的作業。

這是一種霰彈槍方法,顯然是浪費。

我已經通過將一個小型Web應用程序部署到托管我的jenkins實例的同一個應用程序服務器來解決了這個問題,該實例解析了bitbucket發送的json post內容並選擇性地觸發了分支特定的鈎子。

代碼簡潔易懂,易於修改以滿足您的需求; 但值得注意的是,我沒有着手為其他人創建通用解決方案。 無論它作為一個起點對您有用。

https://github.com/Hillrunner2008/bitbucket-hook-manager

查看BitBucket插件

我以前沒有用BitBucket設置它,但我已經使用GitHub設置了相同的功能。

我使用通用的Git插件通過ssh鍵將構建附加到我的git存儲庫。 然后,我選擇“將更改推送到GitHub時構建”選項,我認為該選項是GitHub插件的一部分,該插件主要在Jenkins配置中配置,而不是項目配置。 BitBucket插件應具有類似的功能/鈎子。

對於相同的場景,我在構建觸發器中使用Poll SCM選項

我們需要在git區域給出ref作為+refs/heads/develop:refs/remotes/origin/develop

這里開發的是分支名稱

並且每1分鍾輪詢SCM schedule = */1 * * * *

它只會在開發分支更改時觸發

您應該能夠使用Generic Webhook Trigger插件 您可以使用“可選過濾器”功能僅觸發所需的分支。

您將需要擺弄JSONPath,這需要您了解使用Bitbucket的webhook發送的JSON結構。

看看這個與GitLab一起使用的例子可能會有所幫助。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM