2017-11-15 14 views
0

呼び出されたバッチファイルにエラーが発生しても、Jenkinsパイプラインで問題が発生しています。私は、バッチファイルをチェックして、それはゼロ以外のステータスコードを返しますが、何とかこれは考慮されていないようです。あなたの誰かが私にヒントを持っていますか?バッチ終了コードに基づいてJenkinsパイプラインが失敗しない

希望パイプライン私もこれで...

node { 
    stage('1'){ 
    dir('_src') { 
     bat '''call test.bat 
     echo %ERRORLEVEL%''' 
    } 
    } 
} 

をテストするため、次のパイプラインを使用し、次の

>call test.bat 
INFO: Started ... 
ERROR 
Press any key to continue . . . 
>echo %ERRORLEVEL% 
2 

にcmdウィンドウ結果のバッチを呼び出す

node { 
    stage('1'){ 
    dir('_src') { 
     bat 'call test.bat' 
    } 
    } 
} 

出力

C:\_src>call test.bat 
INFO: Started ... 
ERROR 
Press any key to continue . . . 
2 

まだ、パイプラインは失敗していません。何か案は?

+0

'コウモリ '' 'の出口2' '''動作しますか?あなたのステージの中に 'step {}'がないので、おそらく問題があります。 – Quantic

答えて

0

エコーだけを書きますが、実際には戻り/終了しません。コンクリートをExit 0に追加するか、ケースにExit 2を追加してください。

+0

エコーはデバッグ目的でのみ存在します。最初のケースではエコーも終了も追加したくないのですが、バッチファイルが失敗したとき、つまり0以外の終了コードで終了するとステージが失敗することを期待していました – nogenius

0

それは次のようになります。

node { 
    stage('1'){ 
    dir('_src') { 
     bat '''call test.bat 
     exit %ERRORLEVEL%''' 
    } 
    } 
} 
+0

exit%ERRORLEVELで明示的に終了する必要がありますかバッチファイルはすでにこのエラーレベルで終了していますが、私は、バッチファイルがゼロ以外のステータスコードで終了すると、ステージが自動的に失敗することを期待していました。これは当てはまりませんか? – nogenius

+0

あなたは '呼び出し'を使用するので、ラッピングシェルはおそらく終了コードを取得しません。 – yorammi

+0

'呼び出し'がなくても、結果は同じで、ステージは失敗しません。おそらく、それは追加の出口で動作しますが、正直言って、もし私が各バットのステートメントのためにそれをしなければならないなら、これは本当にうまくありません... – nogenius

関連する問題