我有2個工作(A和B)。 作業A指向URL-A上的git repo。 作業B指向一個不同的git倉庫,在URL-B。Jenkins:將git commit hash傳遞給下游作業
一旦作業A完成且穩定,它應該觸發作業B並傳遞作業A構建中使用的git commit散列。
實現該目標的最簡單方法是什麼?
(作業B對應於腳本的URL-B,其具有2個參數檢出:一個git提交散列和JAR構件將被包裹在一個泊塢圖像和被推到多克爾集線器)
我有2個工作(A和B)。 作業A指向URL-A上的git repo。 作業B指向一個不同的git倉庫,在URL-B。Jenkins:將git commit hash傳遞給下游作業
一旦作業A完成且穩定,它應該觸發作業B並傳遞作業A構建中使用的git commit散列。
實現該目標的最簡單方法是什麼?
(作業B對應於腳本的URL-B,其具有2個參數檢出:一個git提交散列和JAR構件將被包裹在一個泊塢圖像和被推到多克爾集線器)
在工作B,檢查This project is parameterized
。定義一個String Parameter
,例如將Name設置爲COMMIT
。在工作A中,用Trigger parameterized build on other projects
設置Post-build Actions
。 Project to build
是作業B的名字,Trigger when build is
作爲Stable
。 Add Parameters
與Predefined parameters
,其中你只是把COMMIT=$commit
。 $commit
通常是作業A中定義的參數。您可以在作業B中添加其他預定義參數,並將作業A中的全部或部分參數值傳遞給作業A.
當您使用GIT插件從作業A檢出時有$ GIT_COMMIT參數的Plugin exports:
環境變量
的git的插件設置了幾個環境變量,你可以在你 腳本中使用:
GIT_COMMIT - 當前
GIT_BRANCH的SHA - 當前正在使用的遠程存儲庫的名稱(默認爲原點), 隨後分支的名稱,例如 「產地/主」或「產地/ foo」的
等
只要確保這個參數明確地傳遞給工作B(預定義的參數,從參數文件等)。
簡單的方法是使用詹金斯參數化觸發器插件,通過它您可以觸發構建只有在以前的構建是穩定的。
您也可以傳遞參數。就像你的情況一樣,將git commit hash設置爲參數並調用Job B.
其中Job B將接收該參數並進一步處理