75

これが私が遊んでいるコードです

node {
    stage 'build'
    echo 'build'

    stage 'tests'
    echo 'tests'

    stage 'end-to-end-tests'
    def e2e = build job:'end-to-end-tests', propagate: false
    result = e2e.result
    if (result.equals("SUCCESS")) {
        stage 'deploy'
        build 'deploy'
    } else {
        ?????? I want to just fail this stage
    }
}

ジョブ全体を失敗させることなく、「エンド ツー エンド テスト」ステージを失敗としてマークする方法はありますか? Propagate false は常にステージを true としてマークしますが、これは私が望むものではありませんが、 Propagate true はジョブを失敗としてマークしますが、これも望ましくありません。

4

7 に答える 7

14

JENKINS-26522 のように聞こえます。現在できる最善の方法は、全体的な結果を設定することです。

if (result.equals("SUCCESS")) {
    stage 'deploy'
    build 'deploy'
} else {
    currentBuild.result = e2e.result
    // but continue
}
于 2016-04-26T18:53:43.140 に答える