Как удалить скрипт в скрипте из шагов Jenkinsfile

#jenkins

#дженкинс

Вопрос:

Я не уверен, как бы я распутал этот шаг в декларативном файле Jenkinsfile. Мне сказали, что у вас не может быть скрипта внутри скрипта, поэтому я ищу помощь в том, как это можно реорганизовать.

 stage('Publish Procurement') {
  steps {
      script: '''
        if (0 != sh(script: "git diff --exit-code modules/procurement", returnStatus: true)) {
          node_modules/.bin/ng build test-library
          cd modules/test-library/dist/
          node_modules/.bin/ng test test-library
        }
      '''
  }
}
  

Я ценю любую предоставленную помощь.

Ответ №1:

Попробуйте это :

 stage('Publish Procurement') {
  steps {
      returnCode = sh(script: "git diff --exit-code modules/procurement", returnStatus: true)
      if ( 0 != returnCode){
          script: '''
                    node_modules/.bin/ng build test-library
                    cd modules/test-library/dist/
                    node_modules/.bin/ng test test-library
                '''
      }
  }
}

  

Вы всегда можете сохранить вывод sh в переменной, а затем использовать эту переменную для выполнения любых допустимых операций.

Комментарии:

1. Спасибо за помощь в этом