{jenkins-plugin-info:pluginId=environment-script}

Allows you to run a script before each build that generates environment variables for it.

Table of Contents

Description

Environment Script Plugin allows you to have a script run after SCM checkout, before the build. If the script fails (exit code isn't zero), the build is marked as failed.
Any output on standard out is parsed as environment variables that are applied to the build. It supports "override syntax" to append paths to PATH-like variables (through EnvVars.override in Jenkins).

Some information about how it runs:

Setup

To enable this plugin, go to the configuration page of the job you care about, and check the box named Generate environment variables from script.

Regular job

In your script, just print "FOO=bar" to the standard output to set that variable.

echo VARIABLE1=Hello World

If you want to append to an existing PATH-style variable, you can do:

echo PATH+unique_identifier=/usr/local/bin

Otherwise, you're free to do whatever your heart desires in this script - cat a file, run a script in some other language from your project's source tree, etc.

Matrix job

Matrix jobs are pretty much the same as regular jobs, except you get a new checkbox: Run only on parent. If you enable this option, the script will only run on the matrix "parent" job, and not on the individual "configuration builds" (sub-builds). The environment variables will still be propagated to the children.

This option comes in handy if you need to do something like generate a shared version number based on a timestamp - the code will only run once, but all the different configurations will get the variable. Here's an example - note that ONLY $VERSION is seen by the jobs, not $base_version and $unix_time.

base_version=$(cat version.txt)
unix_time=$(date +%s)
echo VERSION=${base_version}-${unix_time}

Known issues

Version history

1.2.5 (Aug 01, 2016)

1.2.4 (Jul 31, 2016)

1.2.3 (May 19, 2016)

1.2.2 (Nov 16, 2015)

1.2.1 (Nov 15, 2015)

1.2 (Aug 28, 2015)

1.1.2 (Aug 9, 2012)

1.1.1 (Aug 8, 2012)

1.1 (Aug 8, 2012)

1.0 (Aug 6, 2012)