WANdisco are experts on which tools add the most value for Subversion users. With the free-to-download uberSVN and uberAPPS, we have taken the hassle out of ALM by selecting the best free and paid application lifecycle management products for Apache Subversion, and offering them on a ‘one-click to purchase, one more click to install’ basis. Our uberAPPS store includes Jenkins, the number one open source continuous integration server. The Jenkins CI system allows users to manage and control the application development lifecycle, including build, documentation, testing and packaging. In uberSVN, Jenkins can add value by watching for code changes in repositories, automatically performing builds, initiating tests, notifying users, rolling changes back and forth, scheduling, monitoring and managing external, time-based cron jobs, and performing operations on remote machines.
In this post, we’ll walk you through downloading Jenkins and creating your first job, before looking at some more advanced project options, designed to give you maximum control over your Jenkins installation.
uberSVN makes the download process as simple as possible, by offering Jenkins through its integrated ‘uberAPPS’ store. (Please note that system admin permission is required to download, install and activate Jenkins). To add Jenkins to uberSVN, simply follow these five steps:
1) Select the ‘uberAPPS’ tab from the uberSVN dashboard. This takes you to the store front, where all the available apps and services are displayed.
2) Select Jenkins. This takes you to Jenkins’ product screen, where you can browse the product description and links to relevant websites.
3) Click ‘Download Now’ and uberSVN’s updates will download Jenkins from the WANdisco servers:
4) Once installed, Jenkins is ready to deploy: just click ‘Activate!’
5) A new ‘Jenkins’ tab will appear, which leads directly to uberSVN’s integrated ‘Jenkins’ screen.
Admins can decide to either make Jenkins available to all uberSVN users (in which case the Jenkins tab will be visible to everyone who logs into the uberSVN portal) or define exactly who can access Jenkins. To limit who can access Jenkins, specify users in the Application Visibility field:
Creating Your First Job
Once you have successfully installed Jenkins, a Jenkins sub-tab will be added to the repository screen. To create your first job, simply:
1) Select the Jenkins sub-tab.
2) Click ADD to add a new job:
3) When prompted, enter a Name and Description and indicate whether you are wanting to Copy Existing Job.
4) The screen will display the Jenkins project form, pre-configured to use the selected repository. This is where you may encounter a quirk with Jenkins that causes the following error to be displayed when you set up your first job:
Unable to access http://repository url:svn: Options/repo name failed (show details)
(Maybe you need to enter credential?)
5) To get around this problem, click on the ‘enter credential’ link and enter the username and password for an account that is valid for the repository, and has read permissions.
6) If the account is valid, you will see the following confirmation message:
Authentication was successful. Information is stored in Hudson (sic) now.
7) Run through the available options for how you want the job to be set up – and hit save!
Creating Jenkins through uberSVN in this way, allows the user to easily track the jobs via the Jenkins tab in the uberSVN portal.
As you can see, uberSVN is designed to make it as easy as possible to get up-and-running with Jenkins, even if you’re a first time user. But, for those with more experience, uberSVN includes plenty of advanced project options, for users who want maximum control over their Jenkins installation:
Quiet period – defines the amount of time a newly-scheduled build waits before actually being built. This is useful for collapsing multiple CVS change notification emails into one, and when a Jenkins installation is too busy with too many builds.
Retry count – specifies the amount of times Jenkins will retry when a build fails to checkout from a repository.
Block build when upstream project is building – prevents the project from building when a dependency of the specified project is in the queue, or building.
Block build when downstream project is building – prevents the project from building when a child of the specified project is in the queue, or building.
Use custom workspace – specifies the workspace location manually. This is useful in a few situations, for example when paths are hard-coded and when the code needs to be built on a particular location.
Build after other projects are built – schedules a new build for a project, when a particular project has finished building. This is useful for running an extensive test after a build is complete.
Publish JUnit test result report – Jenkins understands the JUnit test report XML format, and this option allows it to provide useful information about test results, including historical test result trends, and a web UI for viewing test reports.
Build other projects – triggers builds of specified projects once another build has been successfully completed.
Archive build artifacts – for example, distribution zip files or jar files, so they can be downloaded later.
Aggregate downstream test results – a convenient way of collecting all the test results from downstream test jobs and displaying it alongside the relevant build. This allows users to quickly see the overall test status of the given build.
Record fingerprints of files to track usage – keeps track of where/when certain files are produced and used. To use this feature, all of the involved projects (including the projects in which the file is used) must be set to record fingerprints.
Email notification – Jenkins will send out an email to the specified recipients when a certain improvement event occurs.
That gets you started with Jenkins, be sure to check back later for more help and advice on getting the most out of Jenkins and other uberAPPS.
uberSVN can be downloaded for free from http://www.ubersvn.com/