Madhuri
Madhuri

Reputation: 121

jenkins Pipeline Script: How to get the return value from shell script

I have a jenkins pipeline where I am executing different scripts at different stages. However in one stage I want to get the output of the stage to a variable where I want to pass that variable as an input to next stage . Here is my code in Jenkinsfile

timestamps
{
  node('cf_slave')
  {
    checkout scm
    stage('Download HA image from GSA')
    {
      withCredentials(usernamePassword(credentialsId: 'ssc4icp_GSA', usernameVariable: 'GSA_USERNAME', passwordVariable: 'GSA_PASSWORD')
      {
        environment {
          script {
            OUTPUT = """${sh(
                            returnStdout: true,
                            script: 'bash jenkins/try_install.sh $VAR_ABC'
                         )}"""
            echo $OUTPUT
          }   
        }
      }       
    }
}
}

Here i am getting syntax error. I want to get the OUTPUT in OUTPUT variable and pass that to next stage. Please help me how to do that in a correct way

Upvotes: 0

Views: 5878

Answers (1)

Jon S
Jon S

Reputation: 16346

When referencing variable outside of a string you should not us a dollar sign ($). The code should be (including changes suggested by Matt):

timestamps
{
  node('cf_slave')
  {
    checkout scm
    stage('Download HA image from GSA')
    {
      withCredentials(usernamePassword(credentialsId: 'ssc4icp_GSA', usernameVariable: 'GSA_USERNAME', passwordVariable: 'GSA_PASSWORD'))
      {
        environment {
          script {
            OUTPUT = sh returnStdout: true,
                     script: "bash jenkins/try_install.sh $VAR_ABC"
            echo OUTPUT
          }   
        }
      }
    }
  }
}

Upvotes: 2

Related Questions