1
stage('build') {
steps {
echo currentBuild.result
script {
try {
bat 'ant -f xyz\\build.xml'
} catch (err) {
echo "Caught: ${err}"
currentBuild.result = 'FAILURE'
}
}
echo currentBuild.result
}
}
は私がビルドは以下のメッセージで失敗しているので、パイプラインが失敗することを期待しています。
BUILD FAILED
C:\...\build.xml:8: The following error occurred while executing this line:
C:\...\build.xml:156: The following error occurred while executing this line:
C:\...\build.xml:111: Problem creating jar: C:\...\xyz.war (The system cannot find the path specified) (and the archive is probably corrupt but I could not delete it)
currentBuild.resultはnullです。
antコールが間違っていますか?
戻り値のステータスがパイプラインによって自動的にキャッチされないのはなぜですか?
antコールが失敗したステータスを返していない可能性がありますか?
try..catchの代わりにcatchErrorを試しても、ビルドの失敗は捕捉されません。
antがパイプラインにエラーを伝播しないように見えます。これはおそらくhttps://stackoverflow.com/questions/22395597/propagating-exit-code-from-execd-batch-file-back-to-antに役立ちます。 – haschibaschi
haschibaschiありがとうございました、あなたのコメントのページに、私に試してみるべきいくつかのポインタ、つまり 'echo%ERRORLEVEL%'がありました。私は答えの下に記載されている解決策の1つでそれを使用しました。 – user2891264