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.<p>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.<p>Would you be interested in a project like this?
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.<p>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.<p>If you don't control the host (ie, someone else's hosted CI service), you can do some sleazy hacks documented here:
<a href="https://resin.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/" rel="nofollow">https://resin.io/blog/building-arm-containers-on-any-x86-mac...</a><p>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.
If you're at all serious about doing dev work on arm for non-micro/embedded systems, you should probably look at: <a href="https://softiron.com/products/overdrive-1000/technical-specifications/" rel="nofollow">https://softiron.com/products/overdrive-1000/technical-speci...</a>
I would use an arm virtual machine and still use jenkins.<p>Or get a beefier arm platform, such as the nvidia ones.<p>implementing from scratch is too much effort.
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.