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.
Go to Jenkins top page, select "New Job", then choose "Build a free-style software project". This job type consists of the following elements:
For more details, click the icons in the configuration page.
There is sometimes a need to build a project simply for demonstration purposes or access to a SVN/CVS repository is unavailable. By choosing to configure the project as "None" under "Source Code Management" you will have to:
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.
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.
If you're using a shell script to do your build, you can either put these environment variables directly into your shell scripts, or call them as parameters in your shell script. Below is an example how this can be done:
If you are executing a Windows Batch Command, the variables should be referenced using the %VARIABLE_NAME% pattern. For example:
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:
As an alternative, you can use the Environmental prefix to pull in all environmental variables as properties right inside your build.xml file. Below is an example how to set the property "label" to include the Project Name and the Build Number:
Builds in Jenkins can be triggered periodically (on a schedule, specified in configuration), or when source changes in the project have been detected, or they can be automatically triggered by requesting the URL:
This allows you to hook Jenkins builds into a variety of setups. For more information (in particular doing this with security enabled), see Remote access API.
You can have Jenkins poll your Revision Control System for changes. You can specify how often Jenkins polls your revision control system using the same syntax as crontab on Unix/Linux. However, if your polling period is shorter than it takes to poll your revision control system, you may end up with multiple builds for each change. You should either adjust your polling period to be longer than the amount of time it takes to poll your revision control system, or use a post-commit trigger. You can examine the Polling Log for each build to see how long it took to poll your system.
Alternatively, instead of polling on a fixed interval, you can use a URL trigger (described above), but with /polling instead of /build at the end of the URL. This makes Jenkins poll the SCM for changes rather than building immediately. This prevents Jenkins from running a build with no relevant changes for commits affecting modules or branches that are unrelated to the job. When using /polling the job must be configured for polling, but the schedule can be empty.
With some revision control systems, like Subversion, polling is very quick. Subversion can poll your project in a few seconds to see if there are any changes. In some revision control systems like CVS, polling can take quite a long time.
In this case, you should probably use a post-commit hook to trigger the build. In CVS, you can add a post commit trigger to the $CVSROOT/loginfo file. To edit this file, check out the CVSROOT project, edit the file, and then do a commit. Don't edit the file directly.
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:
If you have the root account of your system and you are using sendmail, I found it the easiest to tweak /etc/aliases and add the following entry:
and then run "newaliases" command to let sendmail know of the change. Whenever someone sends an e-mail to "jenkins-foo@yoursystem", this will trigger a new build. See this for more details about configuring sendmail.
With qmail, you can write /var/qmail/alias/.qmail-jenkins as follows:
Skip to end of metadata Go to start of metadata