Every project I’m working with starts with a setup of continuous integration pipeline. I’m a big fan of cloud services, that’s why I was always using travis-ci.org. A few of my clients questioned this choice recently, mostly because of the price. So I decided to make a brief analysis of the market.
I configured rultor, an open source project, in every CI service I managed to find. All of them are free for open source projects. All of them are hosted and do not require any server installation Here they are, in order of my personal preference:
If you know any other good continuous integration services, email me, I’ll review and add them to this list.
travis-ci.org is the best platform I’ve seen so far. Mostly because it is the most popular. Perfectly integrates with Github and has proper documentation. One important downside is the price of $129 per month. “With this money you can get a dedicated EC2 instance and install Jenkins there” — some of my clients say. I strongly disagree, since Jenkins will require a 24×7 administration, which costs way more than $129, but it’s always difficult to explain.
snap-ci.com is a product of ThoughtWorks, an author of Go, an open source continuous integration server. It looks a bit more complicated than others, giving you an ability to define “stages” and combine them into pipelines. I’m not sure yet how these mechanisms may help in small and medium size projects we’re mostly working with, but they look “cool”.
semaphoreapp.com is easy to configure and work with. It makes an impression of a light-weight system, which I generally appreciate. As a downside, they don’t have any Maven pre-installed, but this was solved easily with a short custom script that downloads and unpacks Maven. Another downside is that they are not configurable through a file (like
.travis.yml) — you should do everything through a UI.
appveyor.com is the only one that runs Windows builds. Even though I’m working mostly with Java and Ruby, which are expected to be platform independent, they very often appear to be exactly the opposite. When your build succeedes on Linux, there is almost no guarantee it will pass on Windows or Mac. I’m planning to use appveyor in every project, in combination with some other CI service. I’m still testing it though…
shippable.com was easy to configure since it understands
.travis.yml out of the box. Besides that, nothing fancy.
wercker.com is a European product from Amsterdam, which is still in beta and that’s why free for all projects. The platform looks very promissing. It is still free for private repositories and is backed up by investments. I’m still testing it…
codeship.io works fine, but their web UI looks a bit out-dated. Anyway, I’m using them now, will see.
magnum-ci.com is a very lightweight and young system. It doesn’t connect automatically to Github, so you should do some manual operations of adding a web hook. Besides that, works just fine.
drone.io works fine, but their support didn’t reply to me when I asked for a Maven version update. Besides that, their badge is not updated correctly in Gitub README.md.
circleci.io I still don’t know why my build fails there. Really difficult to configure and understand what’s going on. Trying to figure it out…
solanolabs.com testing now…
hosted-ci.com testing now…
ship.io testing now…
Keep in mind that no matter how good and expensive your continuous integration service is, your quality won’t grow unless you make your master branch read-only.
You may also find these posts interesting:
- Deploying to Heroku, in One Click
- Deployment Script vs. Rultor
- How to Publish to Rubygems, in One Click
- How to Deploy to CloudBees, in One Click
- How to Release to Maven Central, in One Click
|Reference:||10 Hosted Continuous Integration Services for a Private Repository from our JCG partner Yegor Bugayenko at the About Programming blog.|