jenkins - 让 Jenkins 建立失败

标签 jenkins groovy jenkins-pipeline

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

currentBuild.result = 'FAILURE'

它几乎可以工作。在 Jenkins 控制台我可以看到

Finished: FAILURE

整个管道都标有红色,但是当我将鼠标移到它上面时,它显示状态为成功:

enter image description here

我想获得状态为“失败”而非“成功”的信息。 您可以在下面查看我的代码:

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'
        }
    }
}

最佳答案

好的,我设法解决了这个问题。我创建了额外的阶段,在这个阶段中我将构建视为失败。我的代码现在看起来像这样:

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'
        }
    }
}

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

关于jenkins - 让 Jenkins 建立失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023967/

相关文章:

java - 在 eclipse 中构建项目,但不是从终端/jenkins - 使用 Ant

django - 如何为 Django 应用程序编写 Groovy Jenkinsfile 来运行我的测试?

git - 如何通过 scm 更改触发 jenkins 管道作业?

Jenkins 无法识别 git 二进制文件

Jenkins 并行触发和等待

groovy - Griffon SystemTray 中的自动更新(时间)工具提示

go - 使用 Jenkins Blue Ocean 找不到命令

Jenkins 多分支作业,每个阶段都有声明式管道克隆存储库

windows - 如果没有桌面 session ,devenv.com 将无法启动

java - Groovy Expando 可序列化