簡體   English   中英

Jenkins使用項目工作區資源的動態構建參數

[英]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.

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