Skip to main content
Jump to: navigation, search

Common Build Infrastructure/Getting Started/Build In Hudson

Draft Content
This page is currently under construction. Community members are encouraged to maintain the page, and make sure the information is accurate.

This page only is about running build on the Hudson shared instance ( It does not apply to HIPP instances.

To run a job on with Hudson, you need to perform the following steps:

Request a job

Open a bug in Community > Hudson requesting your new job be created. Here are some examples.

You must provide the following details:

  • generally, name is build_system-project_name-version-qualifier, where qualifier could be "nightly", "release", or the Eclipse version used

Configure a job

Once your job is created (probably from a template), go to, log in using your committerid (link in top right corner), then select your job. Click 'Configure' from the menu on the left to edit your job.

You will want to configure the following items:

  • cleanup rules for old successful/failed builds
  • Git/CVS/SVN source
  • timing (how often should the build run? how often should it check SCM for changes?)
  • script to run, for example:
  • post-build steps
  • job timeout (to avoid stuck jobs)
  • email notification
  • build parameters (to easily switch BUILDTYPE from a Nightly to an Integration, or to pass in EXTRAFLAGS, for example:

Hudson Specific Variables

Hudson provides several environment variables that can be used by your jobs[1]. In particular it is HIGHLY recommended that your Job make use of the WORKSPACE variable to correctly determine the location of its workspace.

  • 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)
  • 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 Hudson Dashboard main page.
  • BUILD_TAG - String of hudson-${JOBNAME}-${BUILD_NUMBER}. Convenient to put into a resource file, a jar file, etc for easier identification.
  • 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.

To use these in your Ant based build make sure you build.xml has the following line as one of the first entrys.

<property environment="env"/>

To set your workspace for Athena, you can then use the following:

<property name="WORKSPACE" value="${env.WORKSPACE}"/>

This will correctly obtain the full path to your workspace regardless of what node it is running.

Run a job

To run a job, wait until the next scheduled time according to your configuration, or click 'Build Now' from the menu on the left of your job's page.

See Also

Back to the top