2016-05-25 103 views
3

我有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

在工作B,檢查This project is parameterized。定義一個String Parameter,例如將Name設置爲COMMIT。在工作A中,用Trigger parameterized build on other projects設置Post-build ActionsProject to build是作業B的名字,Trigger when build is作爲StableAdd ParametersPredefined parameters,其中你只是把COMMIT=$commit$commit通常是作業A中定義的參數。您可以在作業B中添加其他預定義參數,並將作業A中的全部或部分參數值傳遞給作業A.

5

當您使用GIT插件從作業A檢出時有$ GIT_COMMIT參數的Plugin exports

環境變量

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

GIT_COMMIT - 當前

GIT_BRANCH的SHA - 當前正在使用的遠程存儲庫的名稱(默認爲原點), 隨後分支的名稱,例如 「產地/主」或「產地/ foo」的

只要確保這個參數明確地傳遞給工作B(預定義的參數,從參數文件等)。

1

簡單的方法是使用詹金斯參數化觸發器插件,通過它您可以觸發構建只有在以前的構建是穩定的。

您也可以傳遞參數。就像你的情況一樣,將git commit hash設置爲參數並調用Job B.

其中Job B將接收該參數並進一步處理

相關問題