声明性管道检查构建步骤=失败,然后触发下一个构建步骤,但不会使作业失败。

时间:2018-08-23 19:32:24

标签: jenkins jenkins-pipeline jenkins-blueocean

我试图使Jenkinsfile中的构建步骤失败,结果失败=失败。一旦该步骤失败,它将触发我的回滚作业。尝试了许多不同的东西,但是没有运气。任何帮助将不胜感激。

pipeline {
  agent any
  stages {
    stage('Git Checkout') {
         steps {
           script {
           git 'somegit-repo'
           sh'''
           mvn package
           '''
           echo currentBuild.result
           catchError {
           build 'rollback'
          }
        }
      }
    } 
  }

4 个答案:

答案 0 :(得分:1)

一种方法是使用shell脚本并使用exit 1语句 例如

sh "exit 1"

或者您可以使用错误步骤

error('Failing build because...')

请参见https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#error-error-signal

答案 1 :(得分:0)

使用try catch

    node {

       stage("Run scripts") {

           try {
              <some command/script> 
           } catch (error) {
              <rollback command/script>
           }

       }
}

答案 2 :(得分:0)

非常感谢。这似乎可行!

   stages {
      stage("some test") {
        steps{ 
          script {
             git 'mygitrepo.git'
           try {
            sh''' mvn test '''
           } catch (error) {
          script {
           def job = build job: 'rollback-job'
        }
      }
    }
  }
}

答案 3 :(得分:0)

如果您查看cleaning and notifications

您可以执行一个minizinc: unrecognized option "--solver"步骤,摆脱掉所有try / catch内容,并获得一个更干净的Jenkinsfile

post