Class EnvironmentContributor
- All Implemented Interfaces:
ExtensionPoint
- Direct Known Subclasses:
CoreEnvironmentContributor
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 JobProperty
s and other similar configurations
of Job
s to compute values.
Views
buildEnv.groovy/.jelly
When Jenkins displays the help page listing all the environment variables available for a build, it does so by combining all thebuildEnv
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.
- Since:
- 1.392
- Author:
- Kohsuke Kawaguchi
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Serves the combined list of environment variables available from this plugin.Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ExtensionList<EnvironmentContributor>
all()
Returns all the registeredEnvironmentContributor
s.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.
-
Constructor Details
-
EnvironmentContributor
public EnvironmentContributor()
-
-
Method Details
-
buildEnvironmentFor
public void buildEnvironmentFor(@NonNull Run r, @NonNull EnvVars envs, @NonNull TaskListener listener) throws IOException, InterruptedException Contributes environment variables used for a build.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 asInvisibleAction
toRun
, then reuse those values later on.This method gets invoked concurrently for multiple
Run
s 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.- Parameters:
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.- Throws:
IOException
InterruptedException
-
buildEnvironmentFor
public void buildEnvironmentFor(@NonNull Job j, @NonNull EnvVars envs, @NonNull TaskListener listener) throws IOException, InterruptedException Contributes environment variables used for a job.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
Job
s, so it must be concurrent-safe.- Parameters:
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.- Throws:
IOException
InterruptedException
- Since:
- 1.527
-
all
Returns all the registeredEnvironmentContributor
s.
-