Well this is a big topic, but I've been looking at CI products for a while now. We have some unique requirements that make it hard to pick one such as:
- 8GB of real memory for certain builds particularly Boost and QEMU
- Ability to install and run docker containers as the build system itself needs to start docker containers. So it can't itself run be run inside docker.
- Sudo privileges for various packages so it can't run unprivileged.
- Ease of use is really nice too as I'm not too expert.
- Run Ubuntu 14.04. This is less of a problem now but six months ago this was a problem as most build environments used 12.04.
Here's what I've found:
- Not many systems tell you how much memory they allow. For instance CircleCI is limited to 4GB and it is not obvious when it fails as it will wipe a container. Also it's virtualization does not permit swapfiles so you can't expand this limit
- Codeship in it's legacy mode does not allow sudo privileges although it does provide 10GB of real memory.
- Travis CI would seem to work but it is $120 per month so it would be nice to be able to have our own servers too.
So what are some others to try:
- Jenkins. This is supposed to be hard to use, but will run on our own servers
- Bamboo. Also heard some good things about this Atlasssian product
- Drone.io. Ok I admit it a cool name!