Skip to content

Implement CI/CD with static analysis and tests for increased code reliability #5

Description

@fibonatto

Problem

The project currently lacks Continuous Integration / Deployment (CI/CD) workflows and static analysis checks. This increases risk of regressions, undetected errors, and inconsistent code quality. Without CI:

  • Pull requests can accidentally break critical paths (parser, renderer, build pipeline)
  • Bugs in C code (buffer overflows, undefined behavior) remain undetected
  • Formatting, lint, and code health are not enforced
  • Fuzz regression and e2e tests are not automated

Proposed Solution

  • Add a GitHub Actions workflow for PRs and pushes:
    • Build for all major platforms (Linux, macOS)
    • Run static analysis (clang-tidy, cppcheck, etc.)
    • Run all existing (and newly created) tests (fuzz, regression, e2e)
    • Optionally check formatting (clang-format)
  • Add status badge to README
  • Document the pipeline for contributors

Acceptance Criteria

  • PRs fail if any test or analysis fails
  • CI jobs cover all core C source and test code
  • Static analysis issues are surfaced before merge

References

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions