2017-03-27 82 views
1

我想在package.json中包含「版本」參數的值作爲Jenkins構建名稱的一部分。設置Jenkins從package.json版本值創建名稱

我使用的是詹金斯構建名稱二傳手插件 - https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin

到目前爲止,我已經嘗試過使用PROPFILE語法中的「構建名宏模板」的步驟:

${PROPFILE,file="./mainline/projectDirectory/package.json",property="\"version\""} 

此創建成功一個打造,但包括引號,並在周圍的的package.json版本屬性的值逗號,例如:

"0.0.1", 

我只想值插件ide返回,所以它讀取

0.0.1 

我該怎麼做?是否有不同的插件可以更好地解析package.json並將其放入模板中,還是應該使用某種正則表達式來刪除我不想要的字符?

UPDATE:

我嘗試使用基於閱讀令牌宏插件文檔令牌轉換,但它不工作:

${PROPFILE%\"\,#\",file="./mainline/projectDirectory/package.json",property="\"version\""} 

仍然只是返回

然而,僅僅使用一個轉義字符並且只有#或%中的一個有效。沒有其他組合我嘗試工作。

${PROPFILE%\,,file="./mainline/projectDirectory/package.json",property="\"version\""} 

返回"0.0.1"(逗號去掉)

${PROPFILE#\"%\"\,,file="./mainline/projectDirectory/package.json",property="\"version\""} 

返回"0.0.1",(除去沒有字符)


UPDATE: 試圖用新的詹金斯令牌宏插件的JSON宏沒有運氣。

詹金斯構建名稱二傳手設定更新與宏構建名稱:

${JSON,file="./mainline/pathToFiles/package.json",path="version"}-${P4_CHANGELIST} 

詹金斯建立日誌這項工作顯示:

10:57:55 Evaluated macro: 'Error processing tokens: Error while parsing action 'Text/ZeroOrMore/FirstOf/Token/DelimitedToken/DelimitedToken_Action3' at input position (line 1, pos 74): 
10:57:55 ${JSON,file="./mainline/pathToFiles/package.json",path="version"}-334319 
10:57:55                  ^
10:57:55 
10:57:55 java.io.IOException: Unable to serialize [email protected]7de37' 
+0

PROPFILE-makro在哪裏定義? – AlexS

+1

Yoiu可能在最後一個代碼示例中有複製粘貼錯誤。 – AlexS

+0

PROPFILE並不是用於JSON,PROPFILE是用於屬性文件(類似於ini文件)。在新的宏中添加對JSON的支持可能會更好。另外,%和#用於從字符串的開始和結尾中刪除事物,而不是字符串中的所有事件。 – slide

回答

2

我實現了一個新的宏JSON,它接受一個文件和一個路徑(這是JSON的關鍵層次結構想要)在令牌宏-2.1。每個宏使用只能使用一次轉換。

+0

真的很好,但是你能添加一個包含在插件描述中的所有makros的簡短文檔嗎? – AlexS

+0

其他插件可以創建自己的可以使用的宏,所以我不能提供它們的列表。 wiki頁面顯示了插件消耗和生成宏(如果插件開發人員在wiki中的頁面上添加了標籤)。 – slide

+1

但是插件本身帶有很多宏,這些宏都沒有記錄。很高興有一個小列表和描述這些。 – AlexS

2

嘗試令牌轉換#%(見Token-Makro-Plugin) :

$ {PROPFILE#「%」,file =「./mainline/project目錄/ package.json「,屬性=」\「版本\」「}

+0

並不完全,但是這指出了我正確的方向(Token Macro的文檔),謝謝! – nyarasha

+0

用上面的新信息更新了我的問題,請讓我知道如果您有任何想法:) – nyarasha

+0

顯然這不起作用,因爲只能使用一個轉換 - 請參閱上面的@ slide的註釋。 – nyarasha

相關問題