A new entrant into the crowded CI Server market is the cleverly named Pulse by startup Zutubi. I tried the Version 1.0.1 “beta” and made a few a notes along the way1.
![]()
After downloading the hefty 17 meg binary, installation was pretty painless: extract, set PULSE_HOME and then run (requires JDK5.0). This starts up a Jetty-based server that hosts Pulse. The rest of the initial configuration is via a web-based wizard in the de jour Web 2.0 motif (think oversized sans font in off-black).
Setting up my first project was relatively painless, up until the point of getting Pulse to check out my project from SVN. Despite a slick “check this connection” process which reported no problems, when actually triggering a build Pulse failed to checkout anything except the directories of the project, which lead to build doom. The Pulse developers are aware of this problem – apparently related to the newish version of SVN we are using – and are promising a fix in short order. I guess this kind of problem comes with the territory of a beta.
To continue the trial I switched to a project we have still under CVS control, and here everything went smoothly. After a entering a few CVS vitals and manually triggering a build I was presented with a self-refreshing page that reported build progress. When completed I was able to inspect the build log, both in “decorated” (think simple colour markup) and raw mode.
Some random feature highlights
- per-user views and security, although its fairly basic at the moment (I’d expect customers will want to see per-project permissions).
- Builds can be triggered by SCM checkins or via a cron scheduler.
- I could see from the Server config screens the ability to configure notifications in RSS, email and via Jabber. I didn’t get around to trying these out.
- The doco promises to integrate JUnit-style test results as “first class reports”. Again, I ran out of time to try this out.
A few areas for improvement
- There could be more feedback during the build. It would be nice if I could watch a streaming log of build progress – this would be particularly helpful in debugging builds.
- Our projects need to be tested on multiple JDKs and support for this is currently missing in Pulse. Again the Pulse crew are on top of this one a promising multi-JDK support in a future version.
Advantages over CruiseControl
Going from download to building a project from our SCM took me about 10 minutes, even with a hiccup with the SVN support. The wizards simplify the process of installation and project configuration; the learning curve here is considerably more gentle than that faced by first timers grokking the cryptic CruiseControl config file.
Over all Pulse is a polished app with an impressive number of boxes ticked for a initial release. The relatively painless installation and config means the barrier to adoption is low – this alone should ensure an audience for Pulse amoungst time-poor developers. I’ll revisit it when SVN support has been improved and it provides multi-JDK support.
1 Disclaimer: I used to work with Dan from Zutubi :-)
Gotta support the fellowship. — CeeCee May 2, 08:42 PM #
It seems like Pulse would have to go out of its way to keep that from working. — john May 5, 11:29 PM #
You are right, we could rewrite our build files to do this, but it would require us to load a per-developer properties file containing properties that tell Ant where the developer has the various JDKs are installed on their system. Since it isn’t a normal developer activity to run tests with multiple JDKs, we haven’t got around to doing that – instead configuring our CI tool to do it for us (easy in Anthill Pro)
Cheers,
-Brendan — Brendan Humphreys May 6, 03:53 PM #