-
Bug
-
Resolution: Unresolved
-
Minor
-
jenkins-2.190.2-1.1.noarch, workflow-support:3.3
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.
[JENKINS-59990] values set by environment directive are not captured for RunWrapper.getBuildVariables
Description |
Original:
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* {code:java} pipeline { environment { MY_ENVVAR = "example" } stages { stage("run job") { steps { sh 'printenv | sort' } } } }{code} *Result* {code:java} [:] {code} However, if we set this environment variable via the script directive it is captured and made available in the response of RunWrapper.getBuildVariables. *Jenkinsfile* {code:java} pipeline { stages { stage("run job") { steps { script { env.MY_ENVVAR = "example" } sh 'printenv | sort' } } } } {code} *Result* {code:java} [MY_ENVVAR:example]{code} I would expect that ALL custom set environment variables should be retrieved. |
New:
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* {code:java} pipeline { environment { MY_ENVVAR = "example" } stages { stage("run job") { steps { sh 'printenv | sort' } } } }{code} *Result* {code:java} [:] {code} However, if we set this environment variable via the script directive it is captured and made available in the response of RunWrapper.getBuildVariables. *Jenkinsfile* {code:java} pipeline { stages { stage("run job") { steps { script { env.MY_ENVVAR = "example" } sh 'printenv | sort' } } } } {code} *Result* {code:java} [MY_ENVVAR:example]{code} I would expect that ALL custom set environment variables should be retrieved. |