eclipse-archived / kiso

Kiso Project
Other
30 stars 31 forks source link

Integration Test Pilot #205

Open ChiefGokhlayehBosch opened 4 years ago

ChiefGokhlayehBosch commented 4 years ago

This PR combines #159 and #105, as well as expanding on the two, by adding the necessary CI/CD configuration to run integration tests on decentralized Jenkins agents.

A guide on how to set up new agents has been added to the hugo doc. There you'll also find an overview on how it's intended to work.

Docker Hub images have been uploaded. I made them multi-arch images, meaning a Raspberry-Pi 3 (ARM 32-bit) can pull them straight from the hub. The agent image is not published to Docker Hub, as it almost always requires JLink to be built-in. Instead it can be built locally. I added a disclaimer to the agent's Dockerfile, printing the terms of use and asking the user to accept (or decline) the agreement via build-args during image creation.

To report build status back to GitHub, agents require an access token with repo:status-flag set. Updating the commit status, can be done without reverse proxy, meaning an agent may reside behind a NAT or corporate firewall, with one-way access to the internet.

Code-wise core/testing and the simple integration test in core/essentials remain basically untouched from what was there in #159 and #105 (some superficial touch-ups so clang-tidy is happy and bugfixes in the UART integration test).

Closes #159 #105

ChiefGokhlayehBosch commented 4 years ago

After discussion with @sebastianpfischer, it makes more sense to remove the test-entry lookup from the embedded side and revert these changes on kiso-testing side. Each test-app only ever contains a single test-entry. Assigning a ID to those might be neat for debugging purposes, but it doesn't make sense to have a lookup-mechanism for it. The relevant bits in the CCMsg structure shall be marked reserved.