Skip to content

ci: add CI pipeline, security hardening, and quality gates#7

Merged
basmeerman merged 1 commit intomasterfrom
pr/wave1-ci
Feb 19, 2026
Merged

ci: add CI pipeline, security hardening, and quality gates#7
basmeerman merged 1 commit intomasterfrom
pr/wave1-ci

Conversation

@basmeerman
Copy link
Copy Markdown
Owner

Summary

  • CI pipeline: native C tests (525 tests), ESP32+CH32 firmware builds with memory budget, cppcheck, ASan/UBSan, Valgrind, BDD tests, traceability report, version-check on release tags
  • Security hardening: all Actions pinned to SHA256, CodeQL C/C++ analysis, scoped permissions
  • Quality gates: CODEOWNERS, PR template with safety checklist, auto-categorised release notes, YAML issue templates, .clang-format
  • CI fixes: optional firmware signing for forks, conditional S3 upload, pipefail on build steps

Test plan

  • CI runs green on this PR
  • CodeQL scan completes without new findings
  • pio-build succeeds without signing secret

🤖 Generated with Claude Code

CI pipeline (ci.yaml):
- Native C tests with coverage (22 suites, 525 tests)
- ESP32 and CH32 firmware builds with memory budget enforcement
- Static analysis with cppcheck
- Memory sanitizers (ASan + UBSan) and Valgrind
- BDD feature tests with pytest
- Traceability report generation and auto-commit
- Version-check job validating tag matches platformio.ini on releases
- set -o pipefail on build steps to catch silent failures
- Concurrency control to cancel duplicate runs

Security hardening:
- Pin all GitHub Actions to SHA256 hashes
- Add CodeQL C/C++ static analysis (codeql.yaml)
- Scoped permissions (contents: read default, write only where needed)

CI improvements:
- Add .github/CODEOWNERS for automatic review assignment
- Add PR template with safety checklist
- Add .github/release.yml for auto-categorised release notes
- Upgrade YAML issue templates (structured forms)
- Add .clang-format for consistent C code style
- Make firmware signing optional for forks without SECRET_RSA_KEY
- Make S3 upload conditional on AWS credentials presence
- Fix pio-build: use shell check for signing key (secrets not usable in if:)
@basmeerman basmeerman merged commit 037a6b2 into master Feb 19, 2026
5 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant