Jenkins パイプラインで Groovy スクリプトを作成しています。これは、リモート サーバー上でシェル スクリプトを実行します。
シェル スクリプトの出力に基づいて、例外を処理する必要があります。
シェル スクリプトの出力 = 'xyz' の場合 >ビルド成功
シェル スクリプトの出力が != 'xyz' > の場合例外がスローされ、ビルドが失敗します。
ご協力いただければ幸いです。
私のスクリプト
def check()
{
try
{
println "Check started"
sh "echo -e '' >> Result.txt"
sh "ssh -q -o StrictHostKeyChecking=no [email protected] /home/test_agent/check.sh >> Result.txt"
println "Check completed"
}
catch(Exception e)
{
throw e;
}
}
------------------------
キーワードが一致しない場合に備えて、ステージを FAILED としてマークできます。 :
stage('test') {
println "Check started"
sh "echo 'xyz' > /tmp/results.txt"
shellReturn = sh(returnStdout: true, script: """
cat /tmp/results.txt
""").trim()
if(shellReturn == /xyz/){
currentBuild.result = 'SUCCESS'
} else{
println "FAILED"
currentBuild.result = 'FAILED'
}
}
2
ありがとうございます。もうすぐ到着します。== の代わりに IN 演算子を使用できますか?
– アブドゥル・サラム
2020 年 9 月 3 日 15:14
1
shellReturn.contains('string to find') を使用しましたが、うまくいきました。ありがとうございます :)
– アブドゥル・サラム
2020 年 9 月 3 日 15:19