from Hacker News

Ask HN: Are you interested in a ARM CI service?

by slyzmud on 3/8/17, 10:20 PM with 7 comments

Some time ago I bought a Raspberry Pi and started using it for my hobby projects. The problem was that my normal workflow is: code something in my PC, push it to GitHub, and test it with Travis (and build a docker image with DockerHub). The problem is this solution doesn't work well when targeting ARM. DockerHub does not compile ARM projects and Travis runs in x86.

After searching a lot I found that my best option was using a self-hosted CI, but Jenkins, the one I know best, is not an option because of the lack of memory in the Raspberry. So what I did was to create my own CI server in Golang that could run with really low memory usage and I thought it might be very useful for other people. I would relly love to offer it as a service or make it open source.

Would you be interested in a project like this?

  • by kijiki on 3/9/17, 12:34 AM

    On x86-64 Debian hosts you can install binfmt-support an qemu-user-static packages. You'll need to copy the qemu-armeb-static binary inside the container image.

    Then you just build inside a container normally, and the kernel will run the ARM binaries inside qemu-user, translating the ARM system calls to x86-64.

    If you don't control the host (ie, someone else's hosted CI service), you can do some sleazy hacks documented here: https://resin.io/blog/building-arm-containers-on-any-x86-mac...

    I've been meaning to try copying a cross-compiler and cross-binutil into the container, to make things faster (no need to binary-translate ARM gcc/ld to x86-64), but without statically linking the compiler/binutils, it turns into a library nightmare. In theory this should be possible with multi-arch, but I haven't invested the time to try to make it go yet.

  • by abeyer on 3/8/17, 11:19 PM

    If you're at all serious about doing dev work on arm for non-micro/embedded systems, you should probably look at: https://softiron.com/products/overdrive-1000/technical-speci...
  • by billconan on 3/8/17, 10:26 PM

    I would use an arm virtual machine and still use jenkins.

    Or get a beefier arm platform, such as the nvidia ones.

    implementing from scratch is too much effort.

  • by rurban on 3/10/17, 12:33 PM

    Open sourcing sounds good. Offering a service without big beefs behind sounds suicidal. There a lot of big companies with big arm servers, who could offer that as gitlab/GitHub CI integration. Problem is the SW maintanance for them.
  • by sheraz on 3/8/17, 10:56 PM

    Share the link! I'm building a list of all the commercial and open-source CI systems/SaaS/OpenSource projects out there.