Hi Chris, 

Clearmake is a part of ClearCase SCM and it's a COTS binary. I'm attemping to inject a build in the ClearCase build farm , get the build id and restart the build 3 times if it fails the first time. 

The correct commands in the pipeline are

stage('inject full build'){
  steps{
    script {
      sh "#!/usr/bin/env bash \n" +
         "cleartool setview -exec 'clearmake -k full' ${VIEW} | awk -F '<|>' 'NR ==2 { print $2 } ' > foo.txt"
             }
          }
     }


Overall I will test again with """ """ which means to interpolate stuff inside to the best of my knowledge. For the time being I will open myself a drink and start reading the fine manual till my test environment becomes available.


На пн, 17.02.2020 г., 18:21 CFouts <chrisfouts@ziftsolutions.com> написа:

The clearmake command is a shell command too correct? Try this syntax

 

sh “””

   your commands here
“””

 

You will have to escape at least the the “$” symbols.

 

Chris

 

From: Dimitar Vassilev <dimitar.vassilev@gmail.com>
Reply-To: <users@groovy.apache.org>
Date: Monday, February 17, 2020 at 11:13 AM
To: <users@groovy.apache.org>
Subject: handling shell pipelines in Jenkins 2.164.3

 

Greeting fellows,

 

can anyone point me how to handle shell pipelines in Jenkins 2.164.3

I'm having a problem with the following sample code

 

stage('inject full build'){
  steps{
    script {
      sh "#!/usr/bin/env bash \n" +
         "clearmake setview -exec 'clearmake -k full' ${VIEW} | awk -F '<|>' 'NR ==2 { print $2 } ' > foo.txt"
             }
          }
     }

The objective is to record the build id injected into the build queue and monitor the build status later with LSF bjobs command options. when I put the above syntax I get an error message like 

 

unexpected syntax error near unexpected token `|`

 

Any pointers will be appreciated.

Best regards,

 

Dimitar