Jenkins构建失败,但所有阶段都成功

Jenkins构建失败,但所有阶段都成功,jenkins,Jenkins,我有一个Jenkins管道,所有阶段都完成并报告为成功,但整个构建被标记为失败。每次运行生成时都会发生这种情况。构建从头到尾运行,没有任何“从最后阶段继续”。jenkins版本和插件都更新为当前版本 如果我看每一个阶段,它都会在悬停中显示“成功”(参见屏幕截图) 我错过了什么 编辑1:添加蓝色海洋屏幕截图: 管道日志文件的结尾: [Pipeline] } [Pipeline] // withEnv Post stage [Pipeline] junit Recording test res

我有一个Jenkins管道,所有阶段都完成并报告为成功,但整个构建被标记为失败。每次运行生成时都会发生这种情况。构建从头到尾运行,没有任何“从最后阶段继续”。jenkins版本和插件都更新为当前版本

如果我看每一个阶段,它都会在悬停中显示“成功”(参见屏幕截图)

我错过了什么

编辑1:添加蓝色海洋屏幕截图:

管道日志文件的结尾:

[Pipeline] }
[Pipeline] // withEnv
Post stage
[Pipeline] junit
Recording test results
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // parallel
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] mail
[Pipeline] }
[Pipeline] // stage
[Pipeline] End of Pipeline
Finished: FAILURE
编辑2:添加帖子部分

以下是管道语句的结尾:

post {
    failure {
        mail to:    "$MAIL_NOTIFY",
        subject:    "Failed Pipeline: ${currentBuild.fullDisplayName}",
        body:       "Something is wrong with ${env.BUILD_URL}"
    }
}
编辑3:删除后失败


如果我删除了“post{failure{mail…}}”部分,那么构建将成功完成。所以现在的问题是。。。如何修复此部分以使其正常工作?

您需要检查该作业的控制台日志,尽管所有阶段都成功,但最后一部分必须有一个步骤失败。

由于发送电子邮件步骤失败,您可以尝试使用:

environment {
            EMAIL_TO = 'someone@host.com'
        }
    post {
            failure {
                emailext body: 'Check console output at $BUILD_URL to view the results. \n\n ${CHANGES} \n\n -------------------------------------------------- \n${BUILD_LOG, maxLines=100, escapeHtml=false}', 
                        to: EMAIL_TO, 
                        subject: 'Build failed in Jenkins: $PROJECT_NAME - #$BUILD_NUMBER'
            }

        }

如果要向合适的开发人员发送电子邮件,可以尝试以下方法:

pipeline {
    agent any 
    stages {
        stage('A') {
            steps {
                ...
            }
        }
        stage('Test') {
            steps {
                ...
            }
        }
    }
    post { 
        always {
                emailext  body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}",
                recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']],
                subject: "[Jenkins] Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}"
        }
    }
}

我检查了每个阶段,所有阶段都说成功,日志中没有错误/失败。您能提供完整的控制台日志吗?当使用管道时,最好使用Blue Ocean插件查看失败的部分。可能是在post操作中失败了,比如发送电子邮件或使用日志解析器?如果具有相同版本号的以前版本失败,并且您删除了该版本并重置了版本号,则这也是常见的情况。后者可以通过重启詹金斯来解决。我忘了蓝海!我打开它,它仍然没有显示任何明显的问题。管道日志文件为4+MB,因此我不会发布它。我确实在上面的帖子中添加了日志文件的结尾。最后一行是“完成:失败”。我对管道文件做了一个“grep FAIL log.txt”,只找到了我自己的代码。然后它可能在“声明性:Post操作”中,你在那里做什么?它似乎在发送电子邮件。。它真的发出了吗?是的,这似乎有效。我不会因为这些代码而导致整个构建失败。非常感谢。