Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Fixed bug in TOC
Info
iconfalse
titleTable of Contents
Table of Contents
outlinetrue
indent10px
typeflat
separatornewline

Jenkins can be used to perform the typical build server work, such as doing continuous/official/nightly builds, run tests, or perform some repetitive batch tasks. This is called "free-style software project" in Jenkins.

...

When a Jenkins job executes, it sets some environment variables that you may use in your shell script, batch command, Ant script or Maven POM #1. The following table contains a list of all of these environment variables.

Environment Variable

Description

BUILD_NUMBER

The current build number, such as "153"

BUILD_ID

The current build id, such as "2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss, defunct since version 1.597)

BUILD_URL

The URL where the results of this build can be found (e.g. http://buildserver/jenkins/job/MyJobName/666/)

NODE_NAME

The name of the node the current build is running on. Equals 'master' for master node.

JOB_NAME

Name of the project of this build. This is the name you gave your job when you first set it up. It's the third column of the Jenkins Dashboard main page.

BUILD_TAG

String of jenkins-${JOB_NAME}-${BUILD_NUMBER}. Convenient to put into a resource file, a jar file, etc for easier identification.

JENKINS_URL

Set to the URL of the Jenkins master that's running the build. This value is used by Jenkins CLI for example

EXECUTOR_NUMBER

The unique number that identifies the current executor (among executors of the same machine) that's carrying out this build. This is the number you see in the "build executor status", except that the number starts from 0, not 1.

JAVA_HOME

If your job is configured to use a specific JDK, this variable is set to the JAVA_HOME of the specified JDK. When this variable is set, PATH is also updated to have $JAVA_HOME/bin.

WORKSPACE

The absolute path of the workspace.

SVN_REVISION

For Subversion-based projects, this variable contains the revision number of the module. If you have more than one module specified, this won't be set.

CVS_BRANCH

For CVS-based projects, this variable contains the branch of the module. If CVS is configured to check out the trunk, this environment variable will not be set.

GIT_COMMIT

For Git-based projects, this variable contains the Git hash of the commit checked out for the build (like ce9a3c1404e8c91be604088670e93434c4253f03)



(all the GIT_* variables require git plugin)    

GIT_URL

For Git-based projects, this variable contains the Git url (like git@github.com:user/repo.git or [https://github.com/user/repo.git])

GIT_BRANCH

For Git-based projects, this variable contains the Git branch that was checked out for the build (normally origin/master)

Promoted Build Plugin Environment Variables

If you are using the Promoted Build Plugin, you will have access to the following environment variables. This allows you to access information about your Jenkins build since certain environment variables stated above (such as BUILD_TAG now refer to the Promoted Build Plugin's job.

Environment Variable

Replaces

Description

PROMOTED_URL

BUILD_URL

The URL of the original Jenkins job that is involved with the promotion. BUILD_URL now refers to the Promotion's URL

PROMOTED_JOB_NAME

JOB_NAME

The name of the original Jenkins job that is involved with the promotion. JOB_NAME now refers to the Promotion's job's name

PROMOTED_NUMBER

BUILD_NUMBER

The Build Number of the job being promoted. BUILD_NUMBER now refer's the the Promotion Number

PROMOTED_ID

BUILD_ID

The Build ID (ex. "2005-08-22_23-59-59" (YYYY-MM-DD_hh-mm-ss) ) of the original Jenkins job. BUILD_ID now refer's to the Promotion's build ID.

Shell Scripts and Windows Batch Commands

...

If you are executing a Windows Batch Command, the variables should be referenced using the %VARIABLE_NAME% pattern. For example:

Ant Scripts

If you're using an Ant script to do your build, you may include environment variables in property settings. Click on the Advanced... button just below where you put the Ant targets you want to build. This will display the Properties box. Below is an example how to use the Properties box to set Ant properties with Jenkins Environment variables:

...

The loginfo file consists of two entries. The first is the repository, and the second is the post-commit hook to run. If you name your Jenkins projects as <project>-<branch>, you can use the following shell script trigger:

Code Block

#! /bin/bash
/usr/bin/sed -n '/^  *Tag:/s/.*: *//p' | while read branch
do
    #
    #  You need to set these
    #
    wgetCmd=/usr/bin/wget           #Location of wget command
    logName=/usr/home/cvs/log.txt   #Logfile name
    projectBase=jenkins             # First part of the Jenkins project name
    hudsonUrl="http://hudson:8080"  #URL to trigger Jenkins
    triggerString="BUILD"           #String to trigger builds

    hudsonJob="$cvsProject-$branch"

    #
    # Possible exceptions to Jenkins Name Rule
    #
    if [ "$branch" == "REL_1_0_2" ]
    then
        hudsonJob="$projectBase-DEV"
    fi

    $wgetCmd -q $hudsonUrl/job/$hudsonJob/build?token=$triggerString
    echo "$wgetCmd -q $hudsonUrl/job/$hudsonJob/build?token=$triggerString" >> $logName
    echo "---------------------------------------------------" >> $logName
done

...

No Format
|/bin/wget -o /dev/null http://YOURHOST/jenkins/job/PROJECTNAME/build"

 

1

Anchor
1
1
Maven requires that you include the parameter as part of the build goals.
Example Jenkins configuration for the Maven "Goals" field: clean install -DBUILD_NUMBER=${BUILD_NUMBER}