Hudson Continuous Integration
- Our continuous integration server uses Hudson.
- You can access the server here: Mifos Hudson server
- The entire installation is in /home/hudson on a server called "birch".
- The server uses an SSL cert from CAcert; install the CAcert root certificate to avoid browser warnings
- Hudson runs on an Intel Xeon Quad Core 2.66 GHz Ubuntu 10.04 LTS server with 8 GB of RAM
- If you want to be able to kick off builds or administer Hudson, request access on IRC or the mifos-developer mailing list
Maintenance
Restarting Hudson
- on birch, run
sudo service hudson restart
Adding a new branch build
- Add a branch build via the Hudson Web UI. It is generally convenient to copy an existing job (New job → Copy existing job).
Adding a test server
Test Servers are initially configured manually, then deployment is managed by Hudson.
- For branch builds, ie: head-master, head-1.6.x, etc.: configuration files mentioned in this section are relative to
resources/continuous-integration
. - For other test servers, ie: locale- or purpose-specific: configuration files mentioned in this section are relative to
resources/continuous-integration/XXXXXX-deploy
Steps:
- Create a new database on birch for the instance following the existing naming convention. Run SQL scripts (
latest-schema.sql
, etc.) as mentioned in INSTALL. - Edit
mifos_conf/local.properties
. - Find 2 free ports on birch (I run
sudo netstat -nape --listen | grep TESTPORT
a few times, using different test ports), then enter these ports intotomcat/server.xml
. - Commit/push to sf.net.
- Create a new deploy build via the Hudson Web UI, following the existing naming convention. It is generally convenient to copy an existing job (New job → Copy existing job).
- Open firewall hole for your new server, ie:
sudo ufw allow proto tcp from any to any port 8116
. - Add link to new server on Test Servers.
Also see this example configuration for the 1.6.x branch build.