I am in a position where I could become a team leader of a team distributed over two countries. This team would be the tech. team for a start up company that we plan to bootstrap on limited funds. So I am trying to find out ways to minimize upfront expenses. Right now we are planning to use Java and will have a lot of junit tests. I am planing on using github for VCS and lighthouse for a bug tracker. In addition I want to add a continuous integration server but I do not know of any continuous integration servers that are offered as a web service.
Does anybody know if there are continuous integration servers available in a software as a service model?
P.S. if anybody knows were I can get these three services at one location that would be great to know to.
Note: This is an outdated answer from 2008. There are now plenty of such services thanks to things like Amazon’s Elastic Cloud Compute service (for example, travis-ci)
I rather doubt you’ll find a service to build stuff for you. Building requires a lot of CPU power, and if you’re having to rebuild every time someone commits, it would be hard to scale such a service.. And I’m sure there’s probably security issues and the likes as well..
As @eed3si9n said, you could run CruiseControl on a spare (virtual-)machine and use that. Then setup port forwarding, and something like http://dyndns.com or http://no-ip.info to make it publicly accessible. It’s not ideal..
I’ve never used CruiseControl before, but I imagine there will be a way to take the build results, and upload them to a public web-server (as a dumb HTML file). That way it would sit on your home machine, watching github, building new versions and sending the results to a reliable web-host (so no ‘Connection Timeout’ every time your home connection isn’t accessible)
In fact, I just looked at the CruiseControl documentation – the build results are stored as a set of XML files, so it’d be trivial to transfer/display them on another machine.
Basically, my suggestion is: run the continuous integration server on a spare machine, have it upload the results to a public web server somehow.