Home » Software Development » 10 Hosted Continuous Integration Services for a Private Repository

About Yegor Bugayenko

Yegor Bugayenko
Yegor Bugayenko is an Oracle certified Java architect, co-founder and CTO of Teamed.io, lead architect of Rultor.com and Jcabi.com, and a big fan of test automation.

10 Hosted Continuous Integration Services for a Private Repository

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:
 
 
 
 

LinuxWindowsMacOS
travis-ci.com$129/moYESNOYES
snap-ci.com$80/moYESNONO
semaphoreapp.com$29/moYESNONO
appveyer.com$39/moNOYESNO
shippable.com$1/moYESNONO
wercker.comfree!YESNONO
codeship.io$49/moYESNONO
magnum-ci.com?YESNONO
drone.io$25/moYESNONO
circleci.io$19/moYESNONO
sonolabs.com$15/moYESNONO
hosted-ci.com$49/moNONOYES
ship.iofree!YESNOYES

 
If you know any other good continuous integration services, email me, I’ll review and add them to this list.

travistravis-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.

snapsnap-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”.

 
semaphoreappsemaphoreapp.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.

appveyorappveyor.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
shippable.com was easy to configure since it understands .travis.yml out of the box. Besides that, nothing fancy.

 
 
wercker
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
codeship.io works fine, but their web UI looks a bit out-dated. Anyway, I’m using them now, will see.

 
 
magnum
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
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
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.

Related Posts

You may also find these posts interesting:

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

 

2 comments

  1. Hi Yegor,

    I’m from Shippable…. would love to hear feedback/suggestions for improvement since you said it worked for you but is ‘nothing fancy’ :) We definitely want Shippable to be fancy!

    My email is manisha@shippable.com

    Thanks and hoping to connect,
    -Manisha.

  2. I agree with your clients on the price point. $120 is ludicrous as their bottom tier price. I’m not saying that it’s completely ludicrous for that particular offer, but they could offer even simpler plans for individuals and companies. As a completely competent admin, I could get a full dedicated linux server for $30 a month and run it myself, the TCO would be a little higher, but I don’t think it would hit $120 after the the first month. I know why these companies have tiers, and that they need to make money, but I think they need to be reasonable as to what the cost of running this stuff actually is. I’d be willing to pay a price for my CPU time, or some other measurement, but $120 is more than I pay for all other services combined. I think if they worked it out better like I explain below, they could offer services as low as $5 a month.

    For my personal projects, that are private, I need, at most, 50 (20 is more likely) builds a month, a total of 2 people, and 1 concurrent build, 5 minutes total run time, and builds being done only as they have processors available (or whatever, it’s what Travis does for open source, you don’t get priority).

    It’s also worth noting that a couple of these services are designed for Mobile apps, which doesn’t fit my use case, would be nice if the table noted language/platform options.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Want to take your Java skills to the next level?

Grab our programming books for FREE!

Here are some of the eBooks you will get:

  • Spring Interview QnA
  • Multithreading & Concurrency QnA
  • JPA Minibook
  • JVM Troubleshooting Guide
  • Advanced Java
  • Java Interview QnA
  • Java Design Patterns