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 JobProperty
s and other similar configurations
of Job
s 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
EnvironmentContributor 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.
|
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 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.
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.IOException
InterruptedException
public 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 Job
s,
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.IOException
InterruptedException
public static ExtensionList<EnvironmentContributor> all()
EnvironmentContributor
s.Copyright © 2015. All rights reserved.