public abstract class EnvironmentContributor extends Object implements ExtensionPoint
This extension point can be used to externally add environment variables. Aside from adding environment variables
of the fixed name, a typical strategy is to look for specific JobPropertys and other similar configurations
of Jobs to compute values.
When Jenkins displays the help page listing all the environment variables available for a build, it does
so by combining all the buildEnv views from this extension point. This view should use the <t:buildEnvVar> tag
to render a variable.
In this view, it points to EnvironmentContributor and job points to Job for which
the help is being rendered.
Jenkins provides other extension points (such as SCM) to contribute environment variables to builds,
and for those plugins, Jenkins also looks for /buildEnv.groovy and aggregates them.
BuildVariableContributor| Modifier and Type | Class and Description |
|---|---|
static class |
EnvironmentContributor.EnvVarsHtml
Serves the combined list of environment variables available from this plugin.
|
ExtensionPoint.LegacyInstancesAreScopedToHudson| Constructor and Description |
|---|
EnvironmentContributor() |
| Modifier and Type | Method and Description |
|---|---|
static ExtensionList<EnvironmentContributor> |
all()
Returns all the registered
EnvironmentContributors. |
void |
buildEnvironmentFor(Job j,
EnvVars envs,
TaskListener listener)
Contributes environment variables used for a job.
|
void |
buildEnvironmentFor(Run r,
EnvVars envs,
TaskListener listener)
Contributes environment variables used for a build.
|
public void buildEnvironmentFor(@Nonnull Run r, @Nonnull EnvVars envs, @Nonnull TaskListener listener) throws IOException, InterruptedException
This method can be called repeatedly for the same Run, thus
the computation of this method needs to be efficient. If you have a time-consuming
computation, one strategy is to take the hit once and then add the result as InvisibleAction
to Run, then reuse those values later on.
This method gets invoked concurrently for multiple Runs that are being built at the same time,
so it must be concurrent-safe.
When building environment variables for a build, Jenkins will also invoke
buildEnvironmentFor(Job, EnvVars, TaskListener). This method only needs to add
variables that are scoped to builds.
r - Build that's being performed.envs - Partially built environment variable map. Implementation of this method is expected to
add additional variables here.listener - Connected to the build console. Can be used to report errors.IOExceptionInterruptedExceptionpublic void buildEnvironmentFor(@Nonnull Job j, @Nonnull EnvVars envs, @Nonnull TaskListener listener) throws IOException, InterruptedException
This method can be called repeatedly for the same Job, thus
the computation of this method needs to be efficient.
This method gets invoked concurrently for multiple Jobs,
so it must be concurrent-safe.
j - Job for which some activities are launched.envs - Partially built environment variable map. Implementation of this method is expected to
add additional variables here.listener - Connected to the build console. Can be used to report errors.IOExceptionInterruptedExceptionpublic static ExtensionList<EnvironmentContributor> all()
EnvironmentContributors.Copyright © 2019. All rights reserved.