GitLab runner on balena devices for continuous integration testing

Did a few changes recently, just an update:

32-bit x86 runners

Since the GitLab devs declined to have x86 32-bit helper images, and without helper images the runners don’t work, I’ve done my own little patching on the fork of the runner code, for example here:

and built the relevant images with make helper-docker, retagged things, and pushed them to Docker Hub at https://hub.docker.com/r/imrehg/gitlab-runner-helper. The default setup of using these patched images for test devices like Intel Edison, fixed in this commit: Automatic x86 32-bit runner images.

Raspberry Pi 1/Zero balena-engine

It turned out that the binaries we uploaded to the balena-engine releases page for the 17.12.0 release in use do not totally work on armv5/armv6, or at least don’t work the way they should. While debugging that, for those device types I’m installing regular docker for the moment - making the image larger, but also make docker-gc finally work, and the device won’t run out of space anymore, which is good :stuck_out_tongue: Hopefully we can revert this to balena-engine soon.


With this, we have a pretty decent setup, that runs hundreds of tests for our base images, see more details at Automated balenalib base image smoke testing with GitLab runners

2 Likes