仕事でJenkinsのpipelieでビルドをやってますが、シェルスクリプトの終了コードを取得したいケースが出てきたので、終了コードを取得するための方法を調べてみた。
色々と試行錯誤したり、Google先生に質問したりした結果・・・
returnStatusオプションを使えば取得できる
簡単な実装はこんな感じ。
node { stage("Test") { /* /tmp/hoge.shの終了コードをresult変数に格納する */ def result = sh ( script: "/tmp/hoge.sh", returnStatus: true ) echo "${result}" } }
retrunStatusをtrueに設定することでscriptに指定したシェルスクリプトの終了コードを取得することができる。
returnStatus以外には、returnStdoutオプションもあり、シェルスクリプトの標準出力を取得することも可能である。
ただし、returnStatusとreturnStdoutオプションをそれぞれtrueにしていると、returnStatusが優先されるみたい。
pipelineの基本構文やpipelineで使用できるプラグインのリファレンスはチェックした方がよさそう。