Как я могу получить вывод команды в переменную среды в файле Jenkins?

#jenkins #scripting #jenkins-pipeline

#дженкинс #написание сценариев #дженкинс-конвейер

Вопрос:

Итак, я могу захватить переменную за такой шаг, как этот:

 stage('blah') {
  script {
    INVENTORY_FILE = sh(returnStdout: true, script: 'echo $(date  %Y%m%d).yml')
  }
}
  

И это работает. За исключением того, что мне нужно, чтобы эта переменная была в области видимости для всего Jenkinsfile, для всех этапов, а не только для этого. Но, похоже, я не могу использовать sh () вне сцены. Есть какие-нибудь идеи?

Ответ №1:

Вы можете определить переменную в верхней части файла Jenkinsfile, затем вы можете получить доступ к этой переменной во всем файле Jenkinsfile.

 def INVENTORY_FILE

pipeline {

    stages {

        stage('blah') {
          script {
            INVENTORY_FILE = sh(returnStdout: true, script: 'echo $(date  %Y%m%d).yml').trim()
          }
        }

    }
}