Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

demo proposal: Automated embedded testing of FreeRTOS using Jenkins and AWS #1578

Merged
merged 9 commits into from
Mar 25, 2022
37 changes: 37 additions & 0 deletions contributions/demo/week2-testing-and-CI/jedma-segatz/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Assignment Proposal

## Title

Automated testing and delivery for FreeRTOS using AWS

## Names and KTH ID
- Johan Edman (jedma@kth.se)
- Fabian Segatz (segatz@kth.se)

## Deadline

Task 1

## Category

Demo

## Description

In IoT there are often many devices that should receive updates, even when they are already embedded in the field.

It is crucial to validate the correctness of any update before it is published. At the same time, security updates should be supplied fast, to close eventual weaknesses. Automated testing can be used to reduce the time-to-delivery.

However, software development for embedded systems is not as advanced by the means of using CI-pipelines and needs some further exploring.

We plan to give a demonstration on how to use, Jenkins and AWS to automatically deploy firmware that is built upon FreeRTOS. The firmware-under-test runs some schedulability test, which sends back metrics to Jenkins.

The deployment is supposed to be performed using over-the-air (OTA) updating to an ESP32 evaluation board connected to the same network as the build server.

Comment:
There was a similar project in 2020 (https://github.com/KTH/devops-course/tree/2022/attic/2020/contributions-2020/demo/carljen-axelbc), where a demonstration of a CI pipeline for embedded devices was given.

Our proposal differs in three ways:
1. We don't use the remote testing suite of plattformIO, and instead use AWS.
2. Deployment with OTA updates, which simulates a better use-case for in-field testing
3. Unit testing without using an extra probe device, exploiting the capabilities of RTOS.