[英]Jenkins dynamic build parameters using project workspace resources
我正在嘗試為幾個詹金斯·喬布斯建立一些動態的構建參數。 我已經找到了動態參數插件和可擴展選擇參數插件 。 兩者都可以使用groovy腳本進行輸入。
現在是棘手的部分。 我想讀取一個project.property文件(當前版本),並將其用作輸入的默認值。 問題是要訪問工作空間中的文件。 只有“可擴展選擇參數”插件可以選擇為當前項目(AbstractProject)啟用便利變量,在這里我可以獲取工作空間的FilePath。 請參閱以下腳本:
import hudson.FilePath;
propertiesFile = new FilePath(project.getWorkspace(),"project.properties");
props = new Properties();
props.load(propertiesFile.read());
return [props["version"]]
現在,此插件僅向用戶提供一個列表(即使我可以使其可編輯),主要缺點是,我需要將此腳本復制並粘貼到我要使用的每個作業中(更不用說為所有這些更改某些內容了)工作也會很痛苦)。
動態參數插件具有很好的腳本集成,但是我看不到如何獲取當前項目。 這些示例未顯示任何從實際工作空間加載參數的內容,僅從外部文件加載參數。
有誰知道如何解決這兩個問題?
我發現使用動態參數插件而不是可擴展或擴展參數可以運行groovy腳本:
通過“ 遠程腳本”復選框可以進行此選擇:從插件文檔中: “如果選中了“遠程腳本”復選框,則腳本將在開始構建的從屬服務器上執行。
例如,我已經成功列出了工作空間中的文件,並使用此腳本使用它們創建了一個參數菜單( mytest
是我的工作名稱):
def dir = "ls -1 workspace/mytest".execute().text
return dir.readLines()
注意:與期望用逗號分隔的csv文本的其他參數插件(擴展參數插件)相反,此參數插件期望使用groovy列表對象,因此調用readLines()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.