Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 141 Next »

Plugin Information

View Environment Injector on the plugin site for more information.

The current version of this plugin may not be safe to use. Please review the following warnings before use:

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin makes it possible to have an isolated environment for your jobs.

Features

  • Removes inherited environment variables by the Jenkins Java process
  • Injects environment variables at node (master/slave) startup
  • Executes a setup script before or/and after a SCM checkout for a run
  • Injects environment variables before or/and after a SCM checkout for a run
  • Injects environment variables as a build step for a run
  • Injects password values for a run
  • Exports environment variables at the end of the build in order to to know the set of environment variables used for each build

Some use cases

  • To remove inherited environment variables (PATH, ANT_HOME, ...) at node level (master/slave), available by default for a job run.
  • To inject variables in the first step of the job (before the SCM checkout)
  • To inject variables based on user parameter values
  • To execute an initialization script before a SCM checkout.
  • To execute an initialization script after a SCM checkout
  • To inject variables as a build step obtained from a file filled in by a previous build step
  • To know environment variables used for a build
  • To inject build cause as environment variable for a build
  • To inject environment variables from the evaluation of a Groovy script
  • To export environment variables as a metadata in your binary repository

Configuration

At node (master and slaves) level

At job level

Set up a clean environment

Inject variables after a SCM checkout

Inject variables as a build step

Variables Traceability

Each build captures environment variables and stores them in an environment file called 'injectedEnvVars.txt' located in
$JENKINS_HOME/jobs/<your_job>/builds/<your_build>.

For an old build, you can display injected environment variables through the right UI menu on the build page.

You can also get build environment variables by the following HTTP GET URL: <jenkins_url>/job/<job_name>/<build_number>/injectedEnvVars/export
XML, JSON and TXT format are supported.
For example:

  • curl -X GET H"Accept:text/plain" <jenkins_url>/job/<job_name>//lastBuild/injectedEnvVars/export
  • curl -X GET H"Accept:application/xml" <jenkins_url>/job/<job_name>//18/injectedEnvVars/export
  • curl -X GET H"Accept:application/json" <jenkins_url>/job/<job_name>//18/injectedEnvVars/export

Examples

Append to PATH on Windows

Gerrit Trigger plugin with parameterized Build branch name
Check "Prepare an environment for the run"
Evaluated Groovy script:
if (!binding.variables.containsKey('GERRIT_REFSPEC'))

Unknown macro: {    return [GERRIT_REFSPEC}

if (!binding.variables.containsKey('GERRIT_REFSPEC'))

Unknown macro: {    return [GERRIT_REFSPEC}

Additional features provided by other plugins

Shared Objects plugin contributes to Envinject plugin that enables you to populate shared objects as environment variables.

EnvInject and interactions with other plugins

EnvInject captures build environment variables populated by plugins providing environment variables through Jenkins extension points (such as BuildWrappers, EnvironmentContributions and so on).
Environment variables injected by the EnvInject plugin are available in Jenkins triggers (for example in all XTrigger plugin typologies, injected environment variable can be used).
Injected environment variables with the EnvInject plugin are captured by the BuildContext capture plugin.

Comparison with other plugins

This plugin is an alternative to Setenv Plugin and Envfile Plugin plugins
Note 1: The EnvInject plugin automatically migrates the Jobs configuration from these plugins. The setenv and/or the envfile plugins can be deleted from your plugin list.
Note 2: Master and slave are managed.

Jenkins core compatibility

This plugin requires Jenkins 1.410+

Changelog

1.62

* Fix JENKINS-14371 - NullPointerException in EnvInjectBuilderContributionAction.buildEnvVars during SCM poll

1.61

* Fix JENKINS-14367 - Global & node level self-referencing variables should work

1.60

* Fix JENKINS-14290 - Support for Ivy project type

1.59

* Fix JENKINS-14271 - EnvInject claims global env vars are unresolved on slave

1.58

* Fix JENKINS-14284 - Single backslashes are droped or used as escape char

1.57

* Fix JENKINS-14232 - EnvInject not handling properties file with logical lines

1.56

* Load environment variables from the node (therefore, you are able to redefine classic variables such as the PATH variable at node level)
* Upgrade to envinject-lib 1.8

1.55

* Technical release: Merge pull request - Make EnvInjectPluginAction implements EnvironmentContributingAction

1.54

* A few minor changes to keep jdk5 compatibility

1.53

* Fix regression on backward compatibility

1.52

* Remove env variables presence in build serialization file

1.51

* Add a complement to fix JENKINS-12423 - Password masked by Mask Passwords are visible when using envinject plugin (no display environment variables when the job is running)

1.50

* Update to envinject-lib 1.7 (Enable to external plugin to retrieve envVars)

1.49

* Merge pull request - use UnsupportedOperationException instead of UnsupportedMediaException
* Merge pull request - added Japanese localization

1.48

* Fix JENKINS-12878 - manage old data fails with RuntimeException: Failed to serialize hudson.model.Actionable#actions for class hudson.model.FreeStyleBuild

1.47

* Fix JENKINS-13566 - EnvInject is messing around with my TEMP variable when username contains a dollar sign (windows)
* Update to envinject-lib 1.5

1.46

* Fix interaction with multijob plugin

1.45

* Add /export/txt, /export/xml and /export/json for the exportation

1.44

* Fix EnvInject Password process

1.43

* Fix reopened JENKINS-12108 - EnvInject failure using multi-configuration jobs

1.42

* Fix JENKINS-13183 - SCM variables resolution

1.41

* Fix JENKINS-13157 - EnvInject cannot inject variables whose contents contain a dollar sign ($)

1.40

* Fix JENKINS-13167 - Cannot use EnvInject in a Maven 2 Jenkins project

1.39

* Fix JENKINS-13155 - Parameters are not working in EnvInject plugin 1.38

1.38

* Fix JENKINS-13119 - Add feature: Set an environment variable based on value of user passed parameter

1.37

* Fix JENKINS-13085 - Environment Variable Injection doesn't work when project run on slave node that sets the same variable

1.36

* Fix JENKINS-13041 - PATH variable is being injected from master on multiconfiguration jobs

1.35

* Fix JENKINS-13022 - EnvInject 1.33 doesn''t seem to work with Jenkins 1.454

1.34

* Change Environment contributors resolution

1.33

* Move global passwords injection to the 'Prepare job environment' section
* Add 'Inject job passwords'

1.32

* Fix JENKINS-12944 - Env Inject Plugin doesn't substitute ${WORKSPACE} variable at all when used in 'Preparing an environment for the job'
* Fix JENKINS-12963 - EnvInject plugin causes job to use JAVA_HOME instead of configured JDK

1.31

* Fix JENKINS-12936 - EnvInject Plugin 1.30 does not display all properties on job config page

1.30

* Fix JENKINS-12905 - PATH variable is not injected

1.29

* Fix JENKINS-12876 - Version 1.20 and later removed all comments and new-lines
* Add test to JENKINS-12841 - EnvInject Plugin 1.26 does not substitute ${WORKSPACE} correctly

1.28

* Fix reponed JENKINS-12108 - EnvInject failure using multi-configuration jobs
* Fix JENKINS-12841 - EnvInject Plugin 1.26 does not substitute ${WORKSPACE} correctly

1.27

* Add a build context to EnvInjectContributor

1.26

* Fix JENKINS-12704 - WORKSPACE variable for concurrent builds are not defined properly.

1.25

* Fix JENKINS-12809 - Injecting from file removes backslashes on ${WORKSPACE}

1.24

* Add the ability to inject password values
* Fix JENKINS-12423 - Password masked by Mask Passwords are visible when using envinject plugin

1.23

* Fix JENKINS-12788 - Missing variables when executing EnvInject script

1.22

* Fix NullPointerException for a setenv or a envfile migration

1.21

* Fix JENKINS-12746 - envinject strips off "\" each time config page is opened

1.20

* Move properties content serialization to a Map (avoid carriage return issues)
* Fix usage of build variables for the 'Prepare environment jobs'
* Fix Injected environment vars when EnvInject is not configured

1.19

* Fix reopened JENKINS-12423 - Password masked by Mask Passwords are visible when using envinject plugin

1.18

* Fix JENKINS-12691 - Property variable not set if using a property file

1.17

* Fix migration from the setenv and envfile plugin

1.16

* Fix external EnvInjectContribution section display
* Fix text typo

1.15 (technical release)

* Refactoring + fix wrong commit

1.14

* Fix JENKINS-12416 - Environment is not injected for each configuration in a multi-configuration project

1.13

* Add the extension point EnvInject Job Property Contributor to enable other plugins to contribute to this plugin for the prepare job step

1.12

* Fix JENKINS-12423 - Password masked by Mask Passwords are visible when using envinject plugin

1.11

* Update to envinject-lib 1.2

1.10

* Update to envinject-lib 1.1
* Fix bug on the build end

1.9

* Export reuse code to a dedicated library: envinject-lib 1.0
* Fix typo

1.8

* Switch properties section and scripts section for the prepare step

1.7

* Fix JENKINS-12293 - Incorrect inserting environment variables on linux slave

1.6

* Recording EnvVars contributing by other plugins at the end of the build

1.5

* Fix JENKINS-12252 - envinject does not fail the build after Environment Script Content fails

1.4

* Fix portability in the history build.xml file (using the build reference instead of the absolute path of the EnvInjected file)
* Add the ability to load a properties file at node startup (at master and/or at slave startup)

1.3

* Move 'Triggered Build Cause' to Jenkins build variables option
* Add an export option to export environment variables to TXT, XML or JSON

1.2

* Fix NullPointerException when master has 0 executors

1.1

* Fix JENKINS-12108 - EnvInject failure using multi-configuration jobs
* Fix JENKINS-12084 -Variables resolved alphabetically rather than order found in content/file. ${WORKSPACE} not always getting resolved as result
* Accept script parameters to script path sections

1.0

* Fix JENKINS-12027 - ${WORKSPACE} variable doesn't use my specific workspace directory anymore in a build step
* Make it stable for production

0.26

* Enhance display log
* Refactoring for fixing properties variables propagation

0.25

* Fix JENKINS-11763 - Can not set some 'special' variable names the first time
* Technical Refactoring

0.24

* Make it extensible by an another plugin.

0.23

* Fixed JENKINS-11595 - Some env variables can not be used to inject, for example $NODE_NAME

0.22

* Add the ability for the 'prepare environment' feature to load the properties file and the script file from the master node even if the build runs on a slave node.

0.21

* Add global properties and node properties process

0.20

* Fix JENKINS-11439 - Can't add "environment inject" to pre-scm-buildstep plugin.

0.19

* Fix JENKINS-11181 -Variables failing to be set if referencing previous variable

0.18

* Fix JENKINS-11067 - Pre-SCM and Post-SCM environment scripts do not use Pre-SCM and Post-SCM properties

0.17

* Fix JENKINS-11066 - Property Variables "Randomly" Not Working/Getting Unset

0.16

* Fix JENKINS-11063 - Multiple "Inject Environment Variables" Build Steps All Show Same Content

0.15

* Backslashes in file path for windows platform are managed
* Added feature 'unset variable' when the variable is unresolved

0.14

* Integrate domi pull request (add trigger causes as environment variables)
* Fix JENKINS-10980 - EnvInject to optinally trim trailing spaces

0.13.1

* Improve reporting errors

0.13

* Fix JENKINS-10919 - Variables are shared between jobs

0.12

* Fixed JENKINS-10916 - Properties not injected and build marked as failed

0.11.1 (technical release)

* Remove unused maven dependency

0.11

* Fix JENKINS-10894 - Inject environment variables with property file not working

0.10

* Add the ability to unset system variable at node level
* Add an option to 'Keep Jenkins system variables'
* Fix JENKINS-10845 and JENKINS-10877 - master/slave sync / Job variables/parameters are missing
* Complete the fix to JENKINS-10847

0.9

* Fix partially JENKINS-10847 and JENKINS-10845 - Enivronment is not separated
* The ability to 'Keep system variables' has been removed. The feature will be restored later (and moved at slave/node level (not at job level).

0.8

* Fixed variables restauration for Maven jobs

0.7

* Fixed variables propagation between typologies
* Fixed variables restore for all typologies

0.6

* Add a 'Keep Jenkins Build variables' option
* Add 'EnvInject' as prefix for plugin log messages
* Sort the EnvInject variables table

0.5

* Remove advanced sections

0.4

* Add a build wrapper
* Fix serialization fiels for JobProperty
* Add a migration procedure for setenv and envfile plugins

0.3

* Add variables resolution in elements

0.2.1

* Fix environment script content process

0.2

* Can inject environment variables as a build step.

0.1

* Initial version

  • No labels