簡體   English   中英

Jenkins:將 git commit hash 傳遞給下游作業

[英]Jenkins: pass git commit hash to a downstream job

我有 2 個工作(A 和 B)。 作業 A 指向 URL-A 處的 git 存儲庫。 作業 B 指向不同的 git 存儲庫,位於 URL-B。

一旦作業 A 完成並穩定,它應該觸發作業 B 並傳遞作業 A 構建中使用的 git commit 哈希。

實現這一目標的最簡單方法是什么?

(作業 B 對應於從 URL-B 檢出的腳本,它有 2 個參數:一個 git commit 哈希和一個 JAR 工件,它們將包裝在 Docker 映像中並推送到 Docker 集線器)

當您使用 GIT 插件從作業 A 簽出時,您已經擁有插件導出的 $GIT_COMMIT 參數:

環境變量

git 插件設置了幾個可以在腳本中使用的環境變量:

GIT_COMMIT - 當前的 SHA

GIT_BRANCH - 遠程存儲庫的名稱(默認為 origin),后跟當前使用的分支的名稱,例如“origin/master”或“origin/foo”

等。

只需確保將此參數顯式傳遞給作業 B(預定義參數、來自文件的參數等)。

在作業 B 中,選中This project is parameterized 定義一個String Parameter ,例如將 Name 設置為COMMIT 在作業 A 中,設置Post-build Actions with Trigger parameterized build on other projects Project to build是作業 B 的名稱, Trigger when build isStable Trigger when build is Add Parameters帶有Predefined parameters ,您只需在其中放置COMMIT=$commit $commit通常是作業 A 中定義的參數。您可以在作業 B 中添加其他預定義參數,並將值傳遞給作業 A 中的全部或部分參數。

簡單的方法是使用Jenkins 參數化觸發器插件,通過它您可以僅在之前的構建穩定時觸發構建。

您也可以傳遞參數。 就像在您的情況下,將 git commit hash 設置為參數並調用作業 B。

作業 B 將接收該參數並進一步處理的位置

似乎現在(參數化觸發器 2.37,Jenkins 2.204),“觸發器參數化構建”可以選擇“傳遞已構建的 Git 提交”。 即使在下游作業中沒有任何特殊配置也能工作。

使用(參數化觸發器插件https://plugins.jenkins.io/parameterized-trigger/ )設置以下內容:

在上游 JobA:構建后操作 -> 在其他項目上觸發參數化構建 -> 要構建的項目:JobB。 添加參數 -> 構建的傳遞 Git 提交。

在下游 JobB 上:只需檢查源代碼管理從 None 到 Git 並設置與 JobA 中相同的 repo。 對於 Branch 什么都不做,你甚至可以刪除分支,但是 Jenkins 會自動添加 master。 不用擔心 Master,這個 JobB 將使用 JobA 的 GitCommit SHA

暫無
暫無

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

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