Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cross-platform Hosted Continuous Integration

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?

like image 225
Robert T. McGibbon Avatar asked Nov 01 '22 13:11

Robert T. McGibbon


2 Answers

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.

like image 102
amuniz Avatar answered Nov 09 '22 07:11

amuniz


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.

like image 35
marscher Avatar answered Nov 09 '22 07:11

marscher