Roman Zinger
Roman Zinger

Reputation: 152

Jenkins pipeline execute job and get status

pipeline {
agent { label 'master' }
stages {
    stage('test') {
        steps {
            script {
                def job_exec_details = build job: 'build_job'
                
                if (job_exec_details.status == 'Failed') {
                   echo "JOB FAILED"
                }
            }    
        }
    }

} }

I have a pipeline that executing build job, how can I get Job result in jenkins pipeline ?

Upvotes: 1

Views: 7736

Answers (2)

Dashrath Mundkar
Dashrath Mundkar

Reputation: 9174

It should be getResult() and status should be FAILURE not Failed.

so your whole code should be like this

  pipeline {
    agent { label 'master' }
    stages {
        stage('test') {
            steps {
                script {
                    def job_exec_details = build job: 'build_job', propagate: false, wait: true // Here wait: true means current running job will wait for build_job to finish.
                    
                    if (job_exec_details.getResult() == 'FAILURE') {
                       echo "JOB FAILED"
                    }
                }    
            }
        }
    }
}

Upvotes: 5

Dmitriy Tarasevich
Dmitriy Tarasevich

Reputation: 1242

Where is a second way of getting results:

pipeline {
  agent { label 'master' }
    stages {
      stage('test') {
        steps {
          build(job: 'build_job', propagate: true, wait: true)
        }
      }
    }
    post { 
      success { 
        echo 'Job result is success'
      }
      failure { 
        echo 'Job result is failure'
      }
    }
  }
}

You can read more about 'build' step here

Upvotes: 0

Related Questions