This issue is archived. You can view it, but you can't modify it. Learn more

ExportXMLWordPrintable

      When using the environment directive in a declarative pipeline, the environment variables that are set are not captured and exposed via the RunWrapper.getBuildVariables method.

      For example, the following pipeline will yield an empty Map after execution.

      Jenkinsfile

      pipeline {
          environment {
              MY_ENVVAR = "example"
          }
      
          stages {
              stage("run job") {
                  steps {
                      sh 'printenv | sort'
                  }
              }
          }
      }

      Result

      [:]
      

        

      However, if we set this environment variable via the script directive it is captured and made available in the response of RunWrapper.getBuildVariables.

      Jenkinsfile

      pipeline {
         stages {
             stage("run job") {
                 steps {
                     script {
                         env.MY_ENVVAR = "example"
                     }
      
                     sh 'printenv | sort'
                 }
             }
         }
      }
      

      Result

      [MY_ENVVAR:example]

       

      I would expect that ALL custom set environment variables should be retrieved.

            Assignee:
            Unassigned
            Reporter:
            Sam Horton
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: