Yocto Layer CI Build and Test with GitHub Actions
2022-05-18 , Kirkstone

Building and testing Yocto in an automated fashion with GitHub Actions and self hosted runners


I've been maintaining meta-mono for some years now. This is a a Yocto / OpenEmbedded layer which provides support for Mono, an "open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime". Also, more recently, Microsoft's dotNet is supported, "a free, cross-platform, open source developer platform for building many different types of applications. With . NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop, games, and IoT"

Over the years I've had quite a lot of trouble ensuring that new releases of Mono ran properly for the community. It was taking a lot of my time to build for different architectures, with different releases of Yocto, and to test and make sure things were minimally OK.

I've tried some different approaches over time, including cloud build providers and my own Jenkins installations.

But now I've finally come to where I've always wanted to be: With GitHub Actions workflows, leveraging self hosted runners on my own cloud hardware to build and test.

When contributors create a pull request multiple builds are kicked off (qemu-x86-64 and qemu-arm). These are then run up in architecture-specic QEMU virtual machines and a set of simple tests run using the Yocto Test Environment.

It makes life much easier doing some pre-qualification for contributions and makes me feel more confident that I can keep things working.

See also:

Alex has been working with embedded and Internet of Things devices since the mid-nineties.

Around the turn of the century he started playing around with this "Linux" stuff he found on some 1.44in floppy disc distros and wondered if he could get this up and running on the single-board computers the company he worked at made.

He hasn't looked back...