シェル - Jenkins パイプライン | Groovy 例外処理

okwaves2024-01-25  10

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

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。