Hi, I’m Shabe and I’m part of the Technology and Delivery Management team here at Symbian Foundation.
If you have ever experienced building a Symbian package or the full Symbian platform using the manual build steps we’ve provided then you know it can be a bit fiddly and has scope for improvement. An example of this was highlighted in this developer forum thread.
Steps required to build the platform have undergone plenty of churn since the first PDK (2.0.a back in April 09) and keeping up can be a pain, especially when running each step manually. What we really need is a simple and flexible way to automate these build steps.
Hudson CI
I want to introduce a fantastic open source tool called Hudson, that we trialled initially at the Foundation back in August 09. Its the new kid on the block regarding Continuous Integration (CI) tools but it’s feature rich, very simple to set up, and within an hour we had a master-slave setup that was able to build the platform. Converting the build steps into a Hudson job was painless and within no time we had something that we could really make use of.
The web based tool runs each manual FBF/Helium or SBS step directly and logs console output for viewing in a web browser, which is great when plenty of people want to know about the state of the build without having to log onto the specific build machine. With multiple slaves, the console output is aggregated back to the master webserver – allowing a centralised one-stop place for your builds.
Using a tool like this removes scope for error, enhances repeatability and if you’re using the same configuration we’re using then you should get the same results! We’ve now been using it to regularly perform package builds and to produce Platform Development Kits (PDK) for release and found it works great for our needs. We’ve certainly saved plenty of time.
Hudson’s strengths include
- Simplicity - quick setup, works out-of-the-box in single java .war package
- Scalability - distributed master slave built in from the ground up allowing it to scale up from desktop to build farm
- Community - large and active community with plenty of plugins available. e.g.
Where does it fit in?
There are usually two ways to build Symbian things
- Use SBS directly – a sequence of raw SBS build steps that require some manual build prep
- Use FBF/Helium – performs build prep, runs SBS build steps and post build analysis/reporting (+ more)
Hudson can sit on top of either FBF/Helium or SBS directly, and essentially just calls each of the required build steps in sequence. Details of what is going on under the bonnet is available under the “Configure” option on the left hand side.
Try it for yourself
To help the community we now publish in Mercurial Hudson configurations that can be used to build packages and platforms. The PDK configurations are the ones that we use here in the Foundation to achieve the magic “build in one hour” – so you may find them useful.
Further details on how to set up Hudson and use these configurations are available on the wiki.



