詹金斯:即使构建失败,管道也总是返回“成功”

gui*_*ice 5 jenkins jenkins-pipeline

更新:这似乎是Pipeline: Declarative插件版本中引入的错误1.3.5- 降级以1.3.4.1解决此问题。票证创建于:


在远程执行器上使用时如何获得构建的真实状态?

困境:

  • 使用声明式管道
  • 构建在远程执行器上运行
  • 构建失败
  • 点击帖子 { 失败 {} }
  • currentBuild.result为 NULL 且currentBuild.currentResult为 SUCCESS

在远程执行器上执行构建时如何访问实际失败?

代码视图:


pipeline {
    agent any
    stages {
        stage("test run") {
            steps {
                sh "exit 1"
            }
        }
    }

    post {
        always { 
            echo "I always run: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        success {
            echo "I'm successful: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        failure {
            echo "I failed: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        fixed {
            echo "I'm fixed!: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和输出:


pipeline {
    agent any
    stages {
        stage("test run") {
            steps {
                sh "exit 1"
            }
        }
    }

    post {
        always { 
            echo "I always run: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        success {
            echo "I'm successful: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        failure {
            echo "I failed: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
        fixed {
            echo "I'm fixed!: ${currentBuild.result} <> ${currentBuild.currentResult}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

gui*_*ice 3

(发布我的问题的“官方答案”):

Pipeline: Declarative这是插件版本中引入的“错误” 1.3.5- 降级以1.3.4.1解决此问题。票证创建于:

用户和开发人员之间就这是否真的是一个错误进行了反复讨论。开发人员建议不要再使用currentBuild.result,但许多人指出这是 BC 中断并导致了很多问题。

问题已被标记Critical- 可能会回滚或重新开发以更好地实施。

如果您依赖此功能,或者currentBuild.resultcurrentBuild.currentResult,我建议您对此错误发表评论。