Right now there is no easy way to find, when writing a flow script, which environment variables will be predefined.
EnvironmentContributor/EnvVarsHtml/index.groovy renders CoreEnvironmentContributor/buildEnv.groovy. This will be somewhat misleading since EXECUTOR_NUMBER, NODE_NAME, and NODE_LABELS are not currently set for flow builds (since they do not make sense in general, and buildEnvironment is not going to be called from an Executor thread). This page also seems to be documenting variables that CoreEnvironmentContributor does not actually set, including WORKSPACE (from AbstractBuild.getEnvironment) which is also not currently available for flow builds. Setting these variables from ExecutorStepExecution would be welcome. (BUILD_NUMBER, BUILD_ID, and BUILD_TAG are from Run.getCharacteristicEnvVars and are available for flows; likewise JOB_NAME from Job.getCharacteristicEnvVars—curiously JOB_URL is set by CoreEnvironmentContributor.)
At any rate, linking to this page (${rootURL}/env-vars.html) from somewhere in the configuration page for a script would be welcome. Perhaps from help.* of the sh/bat scripts, analogous to the standard Jenkins usage from hudson/tasks/Shell/config.properties etc.?
- depends on
-
JENKINS-28131 Pass NODE_NAME into node{}
- Resolved
- is related to
-
JENKINS-26128 Dynamically-scoped env step
- Resolved
- links to