Cross-platform Hosted Continuous Integration

1k views Asked by At

Are there any existing platforms for cross-platform hosted continuous integration with Linux + OSX + Windows builds?

The workflow I'm looking for is:

  1. I commit to GitHub, or merge a PR.
  2. Using a single set of configuration scripts, the project gets compiled and tested on Linux, Windows, and OSX machines.
  3. If everything goes smoothly, artifacts are uploaded to S3 or something, and a ping is fired back to the github status API.
  4. The whole thing runs in cloud, so I don't have to manage infrastructure.
  5. The pricing structure is either free for open-source (can't beat that), or affordable enough to be accessible for small to mid-sized open-source projects.
  6. The platform isn't restricted to web apps or scripting languages. At some point, we're going to need to compile some C / C++.

A variety of platforms handle the linux side of this: TravisCI, CircleCI, CodeShip, etc. I know AppveyorCI does this for Windows.

Does any provider do hosted CI for all three platforms?

2

There are 2 answers

4
amuniz On

It can be built on top of Jenkins and an IaaS provider.

Jenkins would be on charge of polling GitHub (or receive post commit hooks from it) and run builds on slaves nodes. You would need three slaves, one for each required platform (Linux, Windows and OSX). It wuold be an open-source based solution, since Jenkins, Linux and the OSX core are Open Source (not Windows, of course).

Having everything int he cloud is possible using a hosted CI service + IaaS provider for slaves.

You can take a look at http://clinkerhq.com, which provides Jenkins as a service and slave nodes in an affordable price.

Disclaimer: I'm involved in ClinkerHQ.

3
marscher On

Binstar.org is offering a (yet beta) CI service, which provides all three platforms. But only access to Linux is free. Its provided by creators of Anaconda and therefore there is a tight integration with conda(-build) and binstar uploading.

  1. Build config is stored in git repository, so builds should be triggered on pushes/pr.

  2. Write a .binstar.yml to specify howto build for all platforms. http://docs.binstar.org/build_config.html

  3. The service has tight integration with Binstar, but I guess S3 should also be possible.

  4. Yes its a cloud service.

  5. Its 47$/month for organizations to access all platforms. 7$/m for a personal account.

  6. Since conda build is going to build extensions, it should provide c/c++ compilers.