The article discusses setting up a Continuous Integration (CI) server for embedded systems using a Raspberry Pi as a Self-Hosted GitHub Action Runner.
It details the process of configuring a platform for running automated tests (unit and acceptance) for Arduino and STM32 projects, offering quick feedback on code implementation.
The setup is suitable for educational environments or small development teams looking for continuous assessment in embedded systems programming.
Requirements include Raspberry Pi 5, NUCLEO-F401, SD card, USB cables, and software like PlatformIO CLI and Python.
The article covers configuring the Raspberry Pi, installing the OS, enabling remote desktop, and installing necessary applications and libraries.
It discusses unit testing with CppUTest, acceptance testing with PlatformIO CLI for Arduino and STM32Cube projects, and using self-hosted GitHub Action runners.
Unit tests involve mocking function calls and verifying the correct behavior of LED control functions.
Acceptance tests include compiling, flashing firmware, and physical verification of LED functionality for Arduino and STM32CubeIDE/MX projects.
The article concludes by emphasizing the value of automated testing in educational settings and hints at further enhancements for professional production environments.
Overall, the article provides a comprehensive guide on implementing a CI server for embedded systems, integrating various tools and platforms for automated testing.