Travis CI
Travis CI is a cloud based continuous integration system. They graciously offer their resources to many cloud based projects for build and execution. At it's core, Travis offers a single virtualized build environment per push to branches.
Analysis from Use
I've used thier systems in both a commerical setting as the primary build engineer on the team and for several of my open source projects.
Pros
- Insulated environment per run
- Support for installation of third party libraries and applications
- You can script execution if the out of the box setup doesn't work for you.
- Strong support for execution matrix (IE: multiple versions of Ruby or Python)
- Many databases available out of the box
- Supports secrete environment variables
- Gives free builds to many open source projects without a high barrier of entry.
- Transparent and honnest about issues with thier system (also fairly responsive).
Cons
- Doesn't graph test results (duration, fail, pending, passed, etc)
- Build logs aren't maintained when rerunning a specific job
- (Could be on Apple or me too) OSX/iOS intermittenly fails
- No easy iOS/OSX keychain integration; everything must be done through scripting
- No out of the box pipelining system (IE: kick off acceptance tests after unit & integration tests pass), although you could trigger a build through API possibly