Ask HN: Are you interested in a ARM CI service?
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?
7 comments
[ 2.0 ms ] story [ 19.7 ms ] threadOr get a beefier arm platform, such as the nvidia ones.
implementing from scratch is too much effort.
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.