Thursday 17 May 2012

Using jenkins to build my opensource projects

I've been playing around lately with jenkins. Jenkins is a continuous integration server which has quite a good list of plugins. I've now got most of my open source projects building everytime a change is made. An in the cases of projects like AtomicParsley Shild Fork, I've gotten it to build on 4 different platforms every time a change is made to the source code.

Jenkins makes this pretty easy by allowing a master controll server and then salve servers. So I run the slaves on my different platforms. There are also plugins that allow VM's to be started for needed platforms. Thats something I want to explore for building on different Linux distributions.

The real advantage for me is when the build finished and Jenkins publishes the builds. I have it setup to uploaded AtomicParsley builds the public area of my drop box account. These are then linked to from the project website. In the case of MediaManager, it triggers another build which pushes the current build to the OpenSuSE build server and creates nighly RPM's of the project. These can be used by people who want to live on the bleeding edge.

The other thing I really like is that it collects all the test reports and generated documentation onto the jenkins server. This allows me to quickly review the latest build. I can see how this would be very usefull for teams of develops. However now find the building side of stuff is taken care of automatically leaving me much more time for development. Creating and testing relases is much less of a chore now.

Anyhow Media Manager is getting much closer to a release. Just testing things like the installers at the moment. Once I'm happy with them, I'll be pushing out the release :-)

No comments: