0
に「キー値」のペアとストアが、私は次の操作を実行するためにJenkinsfileためGROOVYスクリプトを書いています:なGroovy:フィルタリングする正規表現:配列
ステップ-1:入力ファイルinfo_file.txt
をお読みください。例えば接尾辞-A0,-B1
などを取り除いた後、アレイ内のCHIP_DETAILS
を保管してください。..
:infoファイルの内容は下の通りです:
sh> cat info_file.txt
CHIP_DETAILS:1234-A0;1456-B1;2456-B0;3436-D0;4467-C0
ステップ-2
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;
}
}
}
}
ありがとう: コードは下のようです!
おかげ@マイクは、この正規表現はいいですね。 'assert'を使って一つずつ書くのではなく、' values'を直接配列に書く方法がありますか?その理由は、 'CHIP_DETAILS'のエントリの数は、私のケースではパイプラインをトリガするときにユーザによって提供された入力パラメータから動的になるためです。つまり、1234-A0というエントリが1つしかない場合や、ユーザーの入力に応じて10以上のエントリがある場合があります。 – Yash
@Yashアサーションは、結果が期待どおりであることを示すためだけにあり、ソリューションに必須ではなく、すべてが正規表現とtestArrayへの代入であるため、配列を反復する方法を示す質問が更新されています –
ありがとう@Mike !! – Yash