0
我寫一個Groovy腳本的Jenkinsfile做下面的一對和存儲:Groovy:在正則表達式來過濾掉「鍵:值」在數組
第1步:讀取輸入文件info_file.txt
。信息文件的內容包括以下:
sh> cat info_file.txt
CHIP_DETAILS:1234-A0;1456-B1;2456-B0;3436-D0;4467-C0
步驟2:存儲在數組中的CHIP_DETAILS
去除後綴-A0,-B1
等後..
例如:
Integer[] testArray = ["1234", "1456", "2456" , "3436" , "4467"]
步驟3 :按順序打印陣列的元素。例如:
testArray.each {
println "chip num is ${it}"
}
我已經寫了小的代碼以測試是否CHIP_DETAILS
「鍵」是存在於輸入文件和其工作正常。 但是我發現很難編寫正則表達式來刪除後綴(-A0,-B1
等..)並將相應的值存儲在數組中。 代碼如下:
stage('Read_Params')
{
steps
{
script
{
println ("Let's validate and see whether the "Key:Value" is present in the info_file.txt\n");
if (new File("$JobPath/Inputparams.txt").text?.contains("CHIPS_DETAILS"))
{
println ("INFO: "Key:Value" is present in the info_file.txt \n");
>>>>> proceed with Step-1, Step-2 and Step-3... <<<<<
}
else
{
println ("WARN: "Key:Value" is NOT present in the info_file.txt \n");
exit 0;
}
}
}
}
在此先感謝您的幫助!
感謝@Mike,此正則表達式聽起來不錯。有沒有一種方法可以直接將'values'寫入數組,而不是使用'assert'逐個寫入。原因是''CHIP_DETAILS'中的條目數量在我的情況下是動態的,因爲它在用戶觸發流水線時提供了一個輸入參數。我的意思是有時我們可能只有一個條目說'1234-A0',或者我們可能有超過10個條目,這取決於用戶的輸入。 – Yash
@Yash assert只是爲了告訴你結果如預期的那樣,它們不是解決方案所需要的,所有需要的是正則表達式和賦值給testArray,我已經更新了問題以展示如何遍歷數組 –
謝謝@Mike! – Yash