Skip to content

Commit

Permalink
Added basic notes on Jenkins setup
Browse files Browse the repository at this point in the history
  • Loading branch information
timlinux committed Jul 20, 2012
1 parent ecb7b24 commit d4a26cb
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/INSTALL.t2t
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ source directory.
%!include: osx.t2t

%!include: wcs-test-server.t2t
%!include: jenkins.t2t


%!include: iauthors.t2t
3 changes: 3 additions & 0 deletions doc/iauthors.t2t
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,8 @@ The following people have contributed to this document:
- WCS Test Server Section
- Tim Sutton, Radim Blazek 2012

- Jenkins CI Configuration
- Tim Sutton 2012

- Latex Generator
- Tim Sutton 2011
89 changes: 89 additions & 0 deletions doc/jenkins.t2t
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@

= Setting up a Jenkins Build Server =

**Assumption:** You know how to make a working build environment and want to
deploy it under Jenkins for continuous integration testing now.

These notes are terse, I will expand on them later as the need arises. The
procedure is:

- Install Jenkins and get it configured according to your own preferences
- Make sure you have the git, github, junit etc plugins installed. A complete
list of the plugins I have installed follows (note that you almost certainly
don't need evey plugin listed here):
- External Monitor Job Type Plugin
- LDAP Plugin
- pam-auth
- javadoc
- ant
- Jenkins Subversion Plug-in
- Git Plugin
- Maven 2 Project Plugin
- Jenkins SLOCCount Plug-in
- Jenkins Sounds plugin
- Jenkins Translation Assistance plugin
- ruby-runtime
- Jenkins CVS Plug-in
- Coverage/Complexity Scatter Plot PlugIn
- Status Monitor Plugin
- Git Parameter Plug-In
- github-api
- GitHub plugin
- Jenkins Violations plugin
- git-notes Plugin
- Twitter plugin
- Jenkins Cobertura Plugin
- Jenkins Gravatar plugin
- Jenkins SSH Slaves plugin
- Create a Job called 'QGIS'
- Use the following options for your job:
- Job Name: QGIS
- Job Type: Build a free-style software project
- Tick enable project based security (you need to elsewhere configure your
Jenkins security to per project settings)
- Allow Anonymous user Read and Discover access
- Set the github project to https://github.com/qgis/Quantum-GIS/
- Set source code management to Git
- Set repository url to git://github.com/qgis/Quantum-GIS.git
- In advanced repository url settings set refspec to :

```
+refs/heads/master:refs/remotes/origin/master
```

- Set branch to build to master
- Repository Browser: Auto
- Build triggers: set to Poll SCM and set schedule to ``* * * * *`` (polls every minute)
- Build - Execute shell and set shell script to:

```
cd build
cmake ..
xvfb-run --auto-servernum --server-num=1 \
--server-args="-screen 0 1024x768x24" \
make Experimental || true
if [ -f Testing/TAG ] ; then
xsltproc ../tests/ctest2junix.xsl \
Testing/`head -n 1 < Testing/TAG`/Test.xml > \
CTestResults.xml
fi
```

- Add Junit post build action and set 'Publish Junit test result report' to:
``build/CTestResults.xml``
- Email notification: Send separate e-mails to individuals who broke the build
- Jenkins sounds - set up sounds for Failure, Success and Unstable.
- Save
-

Now open the Job dash board and push something to QGIS and wait a minute to
validate automated builds work.

**Note:** You will need to log in to the Jenkins user account and go to
/var/lib/jenkins/jobs/QGIS/workspace, then make a ``build`` directory and run
the initial cmake setup and then do test build. This process is the same as
described elsewhere in this doc.

I based some of the set up from this nice blog article here:

* http://alexott.blogspot.com/2012/03/jenkins-cmakectest.html

0 comments on commit d4a26cb

Please sign in to comment.