首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将jenkins构建为失败

将jenkins构建为失败
EN

Stack Overflow用户
提问于 2017-05-17 11:46:31
回答 2查看 5.6K关注 0票数 3

如果测试返回失败或不稳定,我希望将整个构建标记为失败。我认为这样做就足够了:

代码语言:javascript
复制
currentBuild.result = 'FAILURE'

而且它几乎成功了。在jenkins控制台我可以看到

代码语言:javascript
复制
Finished: FAILURE

整个管道都是红色的,但是当我移动鼠标的时候,上面写着状态是成功的:

我想有一个信息,状态是失败,而不是成功。下面您可以检查我的代码:

代码语言:javascript
复制
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'
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-17 12:14:29

好吧,我设法解决了这个问题。我创造了一个额外的阶段,在这个阶段,我把构建变成了失败。我的代码现在看起来如下:

代码语言:javascript
复制
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'
        }
    }
}

但是,我不知道为什么以前的代码没有像预期的那样工作。

票数 2
EN

Stack Overflow用户

发布于 2017-05-17 12:47:03

我敢肯定,“成功”是说阶段是成功,而不是说建设是成功的。如果你想强迫一个舞台失败,就抛出一个异常。如果你想强迫一个舞台总是成功的,用一个尝试/捕捉任何错误包围舞台的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44023967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档