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 TESTPORTa 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.