Powering Up: Lab Automation With Labgrid and CI

Tim Orling, Konsulko Group & Trevor Gamblin, BayLibre

How do you automate your day-to-day embedded software development workflow – if you do? In today’s fast-moving world, automation is all-but-essential. In addition to development speed and efficiency, we need it to be confident that our changes are not breaking anything and to continuously keep up with upstream changes and security fixes. Toward this objective, we will explain how to get started with a GitLab runner for continuous integration, and combining it with Labgrid and pytest for automating testing on hardware at your desk. Our target device will be a BeaglePlay booting a Debian OS with the goal of a tight development loop for kernel drivers and devicetrees. We will also discuss how to incorporate that into a more “product” focused testing loop with the help of the Yocto Project. Most importantly, we’ll explain why this is such a power-up for the developer by sharing our own experiences and how they’ve been improved by adopting the workflow we’ve described. After automating your personal development workflow, we’ll explore community initiatives like KernelCI that are using similar tools for automated builds & tests at scale.