Travis CI Review
Bamboo vs. Travis CI vs. Circle CI vs. Codeship


Continuous integration is a hot topic across the web right now and most conferences have at least a few devops talks that touch on CI and build tools. They usually go something along the lines of, use Phing with Jenkins and touch on the fact that Jenkins used to be called Hudson, has been around for ever and has a plugin for just about everything. I’m not going to mention Jenkins as we explore a few hosted CI solutions.

Hosting Your Own CI Server

Managing any server is a timely process and a CI server is no different. Those Jenkins plugins don’t configure themselves. Smalls teams like ours don’t have the resources to commit to managing infrastructure and that is pretty scary when you’re talking about such a crucial aspect of the business.

We’ve recently moved to a hosted continuous integration platform and below I’ve summarised the R&D I did before we made the big move.

Bamboo

I didn’t look at Bamboo again this time round so I don’t have much to say but I have given it a good test drive previously (about 18 months ago). Probably quite surprising that we didn’t give it more of a look since we use JIRA extensively but I wasn’t that impressed with it last time round.

  • Bamboo is expensive, you have to pay Atlassian’s costs and then the cost of your AWS usage as well.
  • You have to manage your own AWS images and instances. Configuring those instances isn’t as trivial as it could be and is just another way to waste time.
  • Overall, the UI felt overly complicated.

Travis CI

Everyone is using it so TravisCI was my first stop when we started talking about hosted CI solutions. A few clicks and I had Github integration with our repositories and automatic build statuses in pull requests using the Github Status API. The UI is clean and easy to navigate, the way everything automatically updates via AJAX makes the whole experience a pleasure.

The documentation is extensive and easy to navigate and it wasn’t long until I had all of our Simpletest tests up and running. However I was using “drush runserver” as a quick hack which is far from perfect. As I begun to explore different setups for PHP projects I found you could use Apache albeit only with php-fpm, which, probably isn’t an issue to most.

I ran into a few issues the first night with some hanging builds and the support was great. I jumped into their online chat and their staff were fixing my issue within a few minutes.

  • Quick and easy to setup with a clean UI.
  • Well structured documentation Integrates nicely with Github.
  • Mid level pricing.

The main thing missing for me and the reason I continue to explore a few other platforms was the lack of hosted assets and some kind of reporting given standard test output formats like JUnit.

Circle CI

I’d heard a few things about CircleCI, not sure where from, maybe HN? Anyway, I decided to register for an account and I was immediately impressed. Their UI was clean and easy to use, adding projects from Github (or Bitbucket) was a breeze and once again the integration points were solid.

The documentation was also comparable in quality to TravisCI although maybe a little bit on the light side it was probably a little bit easier to navigate. Crawling through the docs I found Circle offered cached dependency directories which massively helps the speed of your build. Looking back after the fact, TravisCI also has this feature.

One thing I really liked about Circle was how easy it was to get SSH access to your builds for debugging. Your Github public key is automatically added to the server when you run with SSH enabled and you login straight in. Little bit annoying that you have to re-run the build to enable the SSH but not so much of a problem for us since our builds aren’t massive anyway.

Hosted assets was probably the feature that got me excited about Circle. It solved a pain point for us (viewing Simpletest output) and I was really happy that it was so easy to implement without messing around sending files to other servers.

Pricing wise, Circle is cheap. I like the pricing structure of paying per container, It makes pricing easy to estimate. When I realised how cheap it was I quickly compared the speed of the builds with TravisCI, nothing to worry they were pretty much identical.

  • Very reasonably priced and a good pricing structure.
  • Ability to debug builds with SSH Hosted assets are viewable from within the build.
  • Quick and easy to setup with a intuitive UI.
  • Works with Bitbucket.

Codeship

A colleague suggested Codeship so I thought i’d give it a try. Admittedly it was the last platform I tested and I was already pretty happy with both Circle and TravisCI so I really wanted something to jump out at me if it was going to win out. Something did jump out, their not so easy to follow dark theme. To be frank, it really put me off, the rest of my testing was aimless clicking around so I knew enough to justify to myself that I had given it a try.

Codeship works with Bitbucket and they've done extensive work around deployments. They seemed to have support for a magnitude of different deployment platforms from the UI and some great documentation to go with it.

  • Wasn’t a big fan of the dark theme.
  • Able to debug with SSH by manually adding your key which is good but not as nice as easy as Circle.
  • The documentation was probably the best out of all platforms. It worked great on mobile which was handy when I was bored at dinner.
  • Works with Bitbucket.

Conclusion

In the end CircleCI was the platform we chose. The hosted assets, SSH access and pricing structure really made it a no brainer for us. A personal email from a founder upon registration was a nice touch, I’m a sucker for personal emails, even if they’re automated.

Moving to a hosted CI server was a great choice for us. Less responsibility, easy to scale and reasonably priced. We get the luxury of using a modern UI (unlike Jenkins) and a feature rich, ever growing platform like Circle. One problem we solved right away was automatic deployments, just one of the limitations we’d found hard to overcome previously with Gitlab.

Originally posted on the Code Drop blog

Disclosure: I am a real user, and this review is based on my own experience and opinions.
1 visitor found this review helpful

Add a Comment

Guest
Why do you like it?

Sign Up with Email