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.?
Code changed in jenkins
User: Tom Fennelly
Path:
cps/src/main/resources/org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition/help-script.html
http://jenkins-ci.org/commit/workflow-plugin/20212cec2d17976dedf3d42f518c9210f9af7a4f
Log:
Merge pull request #75 from tfennelly/
JENKINS-27145JENKINS-27145Linking to env-vars.html from UICompare: https://github.com/jenkinsci/workflow-plugin/compare/0e956a5e3ae6...20212cec2d17