
Ask HN: Are you interested in a ARM CI service? - slyzmud
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&#x27;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?
======
kijiki
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...](https://resin.io/blog/building-arm-containers-
on-any-x86-machine-even-dockerhub/)

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.

------
abeyer
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...](https://softiron.com/products/overdrive-1000/technical-
specifications/)

------
billconan
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.

~~~
billconan
you can also consider cross compiling.

------
rurban
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.

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

~~~
atsaloli
You've got GitLab CI on your list already, right? :)
[https://about.gitlab.com/gitlab-ci/](https://about.gitlab.com/gitlab-ci/)
It's open source (it's included in GitLab CE and EE).

