Tock is an embedded operating system that supports many embedded boards and provides an abstraction layer for many of their features and capabilities. Up until our project, developers have had to manually test the OS on each of their respective boards and provide feedback in forums and Github issue threads. Our goal is to speed up and automate this process, allowing for a true CI experience. After every to the main tock repository, our system automatically runs a set of tests on actual hardware and then reports back the outcome of these tests to the Github "Actions" tab.
Because Tock is an open source software, many people contribute features to make it a better place. However, developers usually only carry out tests on different boards before the release every year, and this makes debugging very hard. Issues and bugs could potentially appear in any added feature since the prior release. The goal of our hardware CI test is to test features on all supported boards as soon as the developers add them. Therefore, at the end of the release cycle, the developers won't need to go through an extensive trial and error process to figure out which added features in the past year have caused failures.