Jenkins continuous integration server: Difference between revisions
Content deleted Content added
imported>Madmetzger |
imported>AntumDeluge add note |
||
| (78 intermediate revisions by 4 users not shown) | |||
Line 1:
{{Navigation for Stendhal Top|Developing}}
{{Navigation for Stendhal Developers}}
'''''NOTE:''' the project no longer used Jenkins'' - [[User:AntumDeluge|AntumDeluge]] ([[User talk:AntumDeluge|talk]])
Jenkins is an extensible continuous integration server. Some developers use local Jenkins instances for building Stendhal and Marauroa.
In production we don't use Jenkins, but [https://travis-ci.org/arianne/ Travis].
==Installation==
To install and run
java -jar
Once
http://localhost:8080
If you see the
==Configuration for Stendhal==
To let
* ANT installed on the same system
* JDK 7 installed
*
Here is a list of Jenkins plugins that you may want to install via the Jenkins configuration. You can see what each plugin does, if you have a look at onto the wiki at the Jenkins homepage.
===Source Code Management System===▼
* [https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin Git Plugin]
** if you want to build from a Git repository
* [https://wiki.jenkins-ci.org/display/JENKINS/File+System+SCM File System SCM Plugin]
** if you want to build directly from the working copy (without committing)
* [https://wiki.jenkins-ci.org/display/JENKINS/Xvnc+Plugin Xvnc Plugin]
** You may want to install this if some tests that depend on Swing fail with an error like ''«No X11 DISPLAY variable was set, but this program performed an operation which requires it»'' (see http://stackoverflow.com/q/12533339/479288).
:* leave this empty if you want to build HEAD. ▼
Other plugins to try:
* [http://wiki.jenkins-ci.org/display/JENKINS/Audit+Trail+Plugin Audit Trail]
* [http://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Plugin Checkstyle Plugin]
<!--* [http://jenkins.gotdns.com/wiki/display/JENKINS/Crap4J+Plugin Jenkins Crap4J plugin]-->
<!--* [http://wiki.jenkins-ci.org/display/JENKINS/Emma+Plugin Jenkins Emma plugin]-->
* [http://wiki.jenkins-ci.org/display/JENKINS/Emotional+Jenkins+Plugin Emotional Jenkins plugin]
* [http://wiki.jenkins-ci.org/display/JENKINS/FindBugs+Plugin FindBugs Plugin]
* [http://wiki.jenkins-ci.org/display/JENKINS/Task+Scanner+Plugin Task Scanner Plugin]
* [http://wiki.jenkins-ci.org/display/JENKINS/Warnings+Plugin Warnings Plugin]
* [http://wiki.jenkins-ci.org/display/JENKINS/Green+Balls Green Balls]
* [http://wiki.jenkins-ci.org/display/JENKINS/Claim+Plugin Claim Plugin]
* [http://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin The Continuous Integration Game plugin]
In the main configuration you have to tell Jenkins where it can find all necessary things.
At every configurable point is a small help to tell what to configure here.
==Setup a build job for Stendhal==
The next steps show how to configure a basic build job for Stendhal.
==== Build from Git ====
To build from Git, you need to have the [https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin Git plugin] installed. Just select Git and configure the following parameters:
* Repository URL
:* <code>file:///your/path/to/stendhal</code>
* Branches to build
:* or choose a branch name to build
==== Build
Here you configure, when a build is started. Our current way of triggering builds is triggered from CVS at a certain time. This means not, the CVS tells hudson to start a build, but it tells hudson to check regularly the CVS for changes and builds, when there were commits since last build.▼
To build from the working copy:
You also can start build at certain times not regarding changes since last build.▼
* have the [https://wiki.jenkins-ci.org/display/JENKINS/File+System+SCM File System SCM] plugin installed
* select "File System" from "Source Code Management"
* Path: <code>/your/path/to/stendhal</code>
===Build Trigger===
For both of this options you have to provide a cron like notation, when to check/build. At the moment, we check every day at 5 am and build then.▼
▲Here you configure
▲You also can start build at certain times not regarding changes since last build.
▲For both of this options you have to provide a cron like notation, when to check/build.
===
To build Stendhal with Jenkins, we just execute three targets from the standard <code>build.xml</code> included in Stendhal source code. We let Jenkins first call <code>clean test</code>. This first cleans the workspace and starts a complete build including coverage measurement. Afterwards we start <code>docs</code> which generates a fresh API documentation from Stendhal.
===Post Build Processing===
After a build was successful certain steps follow to produce those nice looking reports and graphics. For Stendhal we use several reports to publish.
* Publish Javadoc
:* check this option to publish the generated Java docs
:* provide ''api'' as directory for the docs
* Publish JUnit test result report
:* check this option to publish the results
:* provide <code>**/build/build_test_report/testresults.xml</code> as location for the JUnit report in XML format
* Record JaCoCo coverage report
:* this option allows us to publish the results of the test coverage
:* provide <code>**/build/build_server</code> as ''Path to class directories''
:* provide <code>**/src</code> as ''Path to source directories''
* To do report
* Warnings
| |||