Jenkins Pipeline总是失败

4
我的Jenkins管道阶段都成功了,但是构建总是显示失败。明确一点,构建是成功的,我希望它在Jenkins上注册成功,但由于某种原因,Jenkins认为它失败了。所有阶段在仪表板中都显示为成功,但构建标记为红色球,并且控制台输出以Finished: FAILURE结尾。
这是我的管道文件:
node {
    try{
        stage 'Clone repo'
        sh 'gcloud source repos clone <repo-name> --project=<project-name>'
        dir('<repo-name>') {
            try{
                stage 'Run tests'
                sh './gradlew test'
                stage 'Run integration tests'
                sh './gradlew integrationTest'
                publishHTML(target: [
                    allowMissing: false, 
                    alwaysLinkToLastBuild: false, 
                    keepAll: false, 
                    reportDir: '<repo-name>/build/reports/integrationTest', 
                    reportFiles: 'index.html', 
                    reportName: 'Integration Test Reports'])
            } finally {
                stage 'Stop and remove docker containers'
                sh 'docker-compose down'
                sh 'docker-compose rm -f'
            }
        }
    } finally {
        deleteDir()
    }
}

1
Jenkins会在哪里显示失败?它会给出错误消息吗?通常情况下,除非必要,不要使用currentBuild.result选项--依赖于error('message')步骤和try/catch块(避免意外行为)。哦:我应该提到,我是一名开发人员,负责流水线的工作并在此维护流水线阶段视图。 - BobMcGee
我只是添加了它们来尝试让它工作。我已经将它们删除,但它仍然失败。我需要添加一些日志消息来表示成功或其他吗? - Matthew Jones
不,不要捕获这个错误。 - BobMcGee
2个回答

1

我意识到当我实际上在dir块中时,我已经包含了html报告的完整路径。日志中没有任何指示。


1
是的,如果您吞下了异常,就会丢失这些信息。 - BobMcGee

1
你的问题解决了吗?
无论如何,deleteDir函数有时可能会出现问题。因为deleteDir递归地删除当前目录及其内容,如果您尝试删除完整的作业工作区,则可能会引发错误。
请注意在dir函数中使用它,如下所示:
dir('directoryToDelete') {
    deleteDir()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接