簡體   English   中英

Jenkins - 如何建立一個特定的分支

[英]Jenkins - how to build a specific branch

這並不像僅僅進行參數化構建那么簡單。 我已經有了一個特定的構建過程,只要將這些分支中的任何一個推送到 GitHub,就會構建和部署:

在此處輸入圖片說明

因此,如果我剛剛推動develop並成功構建,我如何觸發手動構建並讓它拉feature/my-new-feature (不執行git push )? 我嘗試啟用參數化構建,添加一個名為branch的新字符串,然后添加一個新的分支說明符*/$branch 然后我運行了一個構建並將branch設置為feature/my-new-feature並且它仍然從develop提取。

我很感激任何幫助!

最佳解決方案可以是:

在現有作業中添加字符串參數在此處輸入圖片說明

然后在Source Code Management部分更新Branches to build以使用您定義的字符串參數在此處輸入圖片說明

如果您看到標記為Lightweight checkout的復選框,請確保未選中它。

圖像中指示的配置將告訴 jenkins 作業使用master作為默認分支,對於手動構建,它會要求您輸入分支詳細信息(僅供參考:默認情況下設置為master 在此處輸入圖片說明

我不認為你可以在同一個 jenkins 工作中,你需要做的是配置一個新的 jenkins 工作,它可以訪問你的 github 來檢索分支,然后你可以選擇手動構建哪個。

只需將其標記為參數化構建,指定名稱,並將參數配置為git parameter

在此處輸入圖片說明

現在您可以配置 git 選項:

在此處輸入圖片說明

要通過 Jenkins 腳本簽出分支,請使用:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

我可以看到這個問題的很多很好的答案,但我仍然想分享這個方法,通過使用 Git 參數如下:

添加 Git 參數

在構建管道時,您將被要求選擇分支: 選擇要構建的分支

之后,通過常規代碼,您可以指定要克隆的分支:

git branch:BRANCH[7..-1], url: 'https://github.com/YourName/YourRepo.git' , credentialsId: 'github' 

請注意,我使用從 7 到最后一個字符的切片來縮小“origin/”並獲取分支名稱。

此外,如果您配置了一個 webhooks 觸發器,它仍然可以工作,並且它將采用您指定的默認分支(在我們的例子中是master )。

我終於解決了這個問題。 您需要連接您的Git parameter插件和Generic Webhook Trigger插件。 像這樣: 在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

這是 Ranjith 提供的答案的擴展

我建議您選擇一個選擇參數構建,並指定您想要構建的分支。 主動選擇參數

之后,您可以指定要構建的分支。 分支構建

現在,當您構建項目時,您將獲得“帶參數構建,您可以在其中選擇要構建的分支”

您還可以編寫一個 groovy 腳本來獲取所有分支到活動選擇參數中。

在此處輸入圖片說明

在 Build Triggers 下的 configure 中會有一個選項

檢查 GitHub 分支

將創建一個鈎子,然后您可以在選擇 github Branches 時從 Jenkins 構建您喜歡的任何分支在此處輸入圖片說明

希望能幫助到你 :)

我遇到了同樣的問題。 我的 jenkinsfile 有一些問題。 例如,在執行 release-start 時,checkout 分支是 develop。 因此,無論我的輸入如何,都在使用開發(並且我的分支尚未合並到開發)此外,嘗試添加像這樣的完整分支名稱。 以下是幫助選項的說明:

“最安全的方法是使用 refs/heads/ 語法。這樣預期的分支是明確的。

如果您的分支名稱中包含 /,請確保使用上面的完整參考。”

你也可以使用正則表達式 | 代表“或”

像下面的例子:

(.*branch1|.*branch2)

暫無
暫無

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

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