如果测试返回失败或不稳定,我希望将整个构建标记为失败。我认为这样做就足够了:
currentBuild.result = 'FAILURE'而且它几乎成功了。在jenkins控制台我可以看到
Finished: FAILURE整个管道都是红色的,但是当我移动鼠标的时候,上面写着状态是成功的:

我想有一个信息,状态是失败,而不是成功。下面您可以检查我的代码:
stage('Run tests') {
boolean currentBuildUnstable = false
parallel("Test 1": {
def result = build job: 'test-1-job', propagate: false
currentBuildUnstable = currentBuildUnstable || isUnstable(result)
},"Test 2": {
def result = build job: 'test-2-job', propagate: false
currentBuildUnstable = currentBuildUnstable || isUnstable(result)
},
failFast: true
)
if(currentBuildUnstable) {
node('master') {
currentBuild.result = 'FAILURE'
}
}
}发布于 2017-05-17 12:14:29
好吧,我设法解决了这个问题。我创造了一个额外的阶段,在这个阶段,我把构建变成了失败。我的代码现在看起来如下:
boolean currentBuildUnstable = false
stage('Run tests') {
parallel("Test 1": {
def result = build job: 'test-1-job', propagate: false
currentBuildUnstable = currentBuildUnstable || isUnstable(result)
},"Test 2": {
def result = build job: 'test-2-job', propagate: false
currentBuildUnstable = currentBuildUnstable || isUnstable(result)
},
failFast: true
)
}
if(currentBuildUnstable) {
stage('Check') {
node('master') {
currentBuild.result = 'FAILURE'
}
}
}但是,我不知道为什么以前的代码没有像预期的那样工作。
发布于 2017-05-17 12:47:03
我敢肯定,“成功”是说阶段是成功,而不是说建设是成功的。如果你想强迫一个舞台失败,就抛出一个异常。如果你想强迫一个舞台总是成功的,用一个尝试/捕捉任何错误包围舞台的内容。
https://stackoverflow.com/questions/44023967
复制相似问题