Используя декларативный сценарий конвейера., Получите имя файла из папки и назначьте его глобальной переменной, а затем вызовите эту переменную на другом этапе

#jenkins #groovy #jenkins-pipeline #pipeline #jenkins-declarative-pipeline

Вопрос:

Я хотел бы получить имя файла из папки и установить его в глобальную переменную в конвейере Дженкинса., например; def PS, это было размещено в верхней части сценария декларативного конвейера.

Предположим, что имя файла Someting.zip (это может часто меняться) внутри папки (скажем, /dev/team/*.zip) Каким бы ни было имя., нам нужно получить имя файла в качестве переменной.

что нам нравится делать, так это получать имя файла и присваивать его глобальной переменной, а затем вызывать эту переменную на другом этапе.

 def PS pipeline{  stages  {  stage (assigning variable) {  steps  {  dir('dev/team/')  {  script  {  PS = "lt;we require the zip file present inside that /dev/team/ we tried using *.zip, and yet no luckgt;"    }  }  }     }  stage (calling variable) {  steps  {  script  {  echo $PS  }    }     }  } }  

Ответ №1:

Предполагая, что ваш Дженкинс работает на компьютере с Linux, вы можете использовать команды оболочки для достижения этой цели. Следующий пример должен работать для вашего сценария:

 pipeline{  agent any  environment {  PS=""  }  stages {  stage ("assigning variable") {  steps {  dir('dev/team/') {  script {  PS = sh(returnStdout: true, script: 'find . -name "*.zip" | head -n 1')  }  }  }  }  stage ("calling variable") {  steps {  sh "echo ${PS}"  }  }  } }  

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

1. @Wolf, если мой ответ помог, пожалуйста, отметьте его как принятый.