Jump to: navigation, search

Difference between revisions of "Common Build Infrastructure/Getting Started/Build In Hudson"

(Request a job)
m (Hudson Specific Variables)
 
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
{{:DocumentationGuidelines/DraftHeader}}
 +
 
To run a job on build.eclipse.org with Hudson, you need to perform the following steps:
 
To run a job on build.eclipse.org with Hudson, you need to perform the following steps:
  
 
== Request a job ==
 
== Request a job ==
  
[https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Hudson Open a bug in Community > Hudson] requesting your new job be created. You must provide the following details:
+
[https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Hudson Open a bug in Community > Hudson] requesting your new job be created. [https://bugs.eclipse.org/bugs/buglist.cgi?product=Community&component=Hudson Here are some examples].
 +
 
 +
You must provide the following details:
  
 
* committerid(s) for people who should have access
 
* committerid(s) for people who should have access
* job name (see https://build.eclipse.org/hudson/view/Athena%20CBI/ for naming convention)
+
* job name (see https://hudson.eclipse.org/hudson/view/Athena%20CBI/ for naming convention)
 
:*generally, name is <b style="color:blue">build_system</b>-<b style="color:red">project_name</b>-<b style="color:green">version</b>-<b style="color:orange">qualifier</b>, where <b style="color:orange">qualifier</b> could be "nightly", "release", or the Eclipse version used
 
:*generally, name is <b style="color:blue">build_system</b>-<b style="color:red">project_name</b>-<b style="color:green">version</b>-<b style="color:orange">qualifier</b>, where <b style="color:orange">qualifier</b> could be "nightly", "release", or the Eclipse version used
 
[https://bugs.eclipse.org/bugs/buglist.cgi?product=Community&component=Hudson Here are some examples].
 
  
 
== Configure a job ==
 
== Configure a job ==
  
Once your job is created, go to https://build.eclipse.org/hudson/view/Athena%20CBI/, 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.
+
Once your job is created (probably from [[Common Build Infrastructure/Getting Started/Build In Hudson/Sample Job|a template]]), go to https://hudson.eclipse.org/hudson/view/Athena%20CBI/, 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:
 +
:* '''[[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Ant_Job|Ant script]] ([[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Ant_Script|more info]])'''
 +
:* '''[[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Bash_Job|Bash script]]'''
 +
* post-build steps
 +
* [[Common Build Infrastructure/Getting Started/Build In Hudson/Job Timeouts And Contacts|job timeout]] (to avoid stuck jobs)
 +
* [[Common Build Infrastructure/Getting Started/Build In Hudson/Job Timeouts And Contacts|email notification]]
 +
* build parameters (to easily switch BUILDTYPE from a Nightly to an Integration, or to pass in EXTRAFLAGS, for example:
 +
:* https://hudson.eclipse.org/hudson/view/Athena%20CBI/job/cbi-zzzTEMPLATE-nightly/
 +
:* https://hudson.eclipse.org/hudson/view/Athena%20CBI/job/cbi-zzzTEMPLATE-integration/
 +
* JUnit results
 +
* other optional plugins, like [http://wiki.hudson-ci.org/display/HUDSON/Emotional+Hudson+Plugin Emotional Hudson] or [http://wiki.hudson-ci.org/display/HUDSON/The+Continuous+Integration+Game+plugin CI Game]
 +
 
 +
=== Hudson Specific Variables ===
 +
 
 +
Hudson provides several environment variables that can be used by your jobs[http://wiki.hudson-ci.org/display/HUDSON/Building+a+software+project#Buildingasoftwareproject-HudsonSetEnvironmentVariables].  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 ==
 
== 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.  
 
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 ==
 +
 +
* Configuring your job from a template using an '''[[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Ant_Job|Ant script]] ([[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Ant_Script|more info]])''' or '''[[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Bash_Job|Bash script]]'''
 +
* [[Common_Build_Infrastructure/Getting_Started/Build_In_Hudson/Job_Timeouts_And_Contacts|Job Timeouts And Contacts]]
 +
  
 
[[Category:Athena Common Build]]
 
[[Category:Athena Common Build]]
 
[[Category:Hudson]]
 
[[Category:Hudson]]
 
[[Category:Releng]]
 
[[Category:Releng]]
 +
[[Category:Draft_Documentation]]

Latest revision as of 12:53, 22 August 2013

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


To run a job on build.eclipse.org 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 https://hudson.eclipse.org/hudson/view/Athena%20CBI/, 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