Jenkinsfile:即使测试步骤失败也发布测试结果

Jenkinsfile: publish test results even if test step fails

在我的 Jenkinsfile 中,我有一个阶段 Test,其中我 运行 一个 npm 测试命令步骤以及一个 junit 存档测试步骤结果。

stage('Test') {
  steps {
    sh 'npm run test-ci'
    junit 'test-results.xml'
  }
}

即使 sh 'npm run test-ci' 步骤失败,如何正确使用 try/finally 到 运行 junit 步骤?

您想使用 post 阶段,https://jenkins.io/doc/book/pipeline/syntax/#post

pipeline {
    agent any
    stages {
      stage('Test') {
        steps {
          sh 'npm run test-ci'
        }
      }
      post { 
        always { 
          junit 'test-results.xml'   
        }
    }
}

也可以看看这个博客post,它进一步解释了,https://jenkins.io/blog/2017/02/10/declarative-html-publisher/