Add Raspberry Pi 5 performance testing environment setup#1
Draft
Add Raspberry Pi 5 performance testing environment setup#1
Conversation
…tions workflows Agent-Logs-Url: https://github.com/becauseimclever/PerformanceNode/sessions/e6616074-6451-4d99-98b5-b33db90df95e Co-authored-by: Fortinbra <8450852+Fortinbra@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add setup scripts for Raspberry Pi 5 performance testing
Add Raspberry Pi 5 performance testing environment setup
Apr 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bootstraps a Raspberry Pi 5 as a self-hosted GitHub Actions performance node: Docker-containerised benchmarks, a custom HAT for GP2040-CE input-latency measurement, and workflows that publish results back to GitHub.
Setup Scripts (
scripts/)setup.sh— orchestrator; accepts--skip-docker,--skip-runner,--skip-hat,--runner-url,--runner-tokensetup-system.sh— OS packages, CPU governor →performance, swap off, sysctl network tuning, NTP, hostnamesetup-docker.sh— Docker Engine via official Debian repo,daemon.jsonwith overlay2 + BuildKit, adds user todockergroupsetup-github-runner.sh—github-runnersystem user, ARM64 runner binary, systemd unit with labelsself-hosted,Linux,ARM64,raspberry-pi-5,performancenodesetup-hat.sh— Python venv (RPi.GPIO,gpiozero,lgpio), udev rules for GPIO and GP2040-CE USB (VID0x2E8A),dtparamoverlays in/boot/firmware/config.txtDocker Benchmark Containers (
docker/)Multi-stage
debian:bookworm-slimimage with separate targets forwrk,iperf3,stress-ng, andsysbench. Each entrypoint emits a structured JSON result file. Compose profiles (http,network,stress,cpu,memory,io) enable targeted local runs.GP2040-CE Latency HAT (
hat/)latency_test.pydrives GPIO 17 to trigger a button press on the connected GP2040-CE device, waits for the round-trip signal on GPIO 4, and collects configurable samples (default 1 000 + 50 warmup). Outputs min/max/mean/median/stdev/p95/p99 as JSON.Pin config lives in
hat/config/hat-config.json(BCM 4 = signal in, 17 = trigger out, 27 = status LED).GitHub Actions Workflows (
.github/workflows/)performance-test.ymlperformancenodelatency-test.ymlperformancenodeBoth support
workflow_dispatchfor manual runs with parameter overrides. Results uploaded as artifacts (benchmarks 90 days, latency 365 days) with a markdown stats table written to the run summary. Explicitpermissions: contents: read / actions: writeblocks on all jobs.Original prompt