我如何确保始终执行Jenkins管道阶段,即使之前的管道阶段失败了?

sor*_*rin 8 groovy jenkins jenkins-pipeline

我正在寻找一个Jenkinsfile总是执行一个步骤的例子,即使上一步失败了.

我想确保在出现故障的情况下存档一些构建结果,并且我需要能够在最后执行一个始终运行的步骤.

我怎样才能做到这一点?

sor*_*rin 7

   try {
         sh "false"
    } finally {

        stage 'finalize'
        echo "I will always run!"
    }
Run Code Online (Sandbox Code Playgroud)


m0j*_*0hn 6

我们改用了Jenkinsfile声明性管道,这使我们可以执行以下操作:

pipeline {
    agent any
    stages {
        stage('Test') {
            steps {
                sh './gradlew check'
            }
        }
    }
    post {
        always {
            junit 'build/reports/**/*.xml'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

参考文献:

测试和工件

Jenkins管道语法

  • 如果您使用 docker 容器作为代理,则不会在容器内运行帖子:( (3认同)