Skip to content

Conversation

@JamesonRGrieve
Copy link
Owner

Adds reusable C++ unit test workflows modeled after test-py-pytest.yml:

  • test-cpp-gtest.yml: Reusable workflow for CMake-based C++ projects

    • Supports GTest, Catch2, and CTest frameworks
    • Parallel test execution with cgroup-aware CPU detection
    • JUnit XML output parsing for structured results
    • Compiler auto-detection (gcc/clang)
    • Build error detection and reporting
  • run-branch-test-cpp.yml: Branch comparison workflow

    • Framework detection for CMake projects
    • Smart caching for target branch results (same pattern as pytest)
    • Full regression analysis integration via regression-test.yml
    • Discord notification support for regressions
  • triggers/cpp/: Template trigger files for PRs

Output format is compatible with regression-test.yml for full regression matrix analysis including pass/fail/skip/disabled states.

Adds reusable C++ unit test workflows modeled after test-py-pytest.yml:

- test-cpp-gtest.yml: Reusable workflow for CMake-based C++ projects
  - Supports GTest, Catch2, and CTest frameworks
  - Parallel test execution with cgroup-aware CPU detection
  - JUnit XML output parsing for structured results
  - Compiler auto-detection (gcc/clang)
  - Build error detection and reporting

- run-branch-test-cpp.yml: Branch comparison workflow
  - Framework detection for CMake projects
  - Smart caching for target branch results (same pattern as pytest)
  - Full regression analysis integration via regression-test.yml
  - Discord notification support for regressions

- triggers/cpp/: Template trigger files for PRs

Output format is compatible with regression-test.yml for full
regression matrix analysis including pass/fail/skip/disabled states.
Instead of creating a separate workflow file, add C++ support directly
to the existing run-branch-test.yml:

- Add C++ framework detection (CMakeLists.txt with testing, test files)
- Add C++ related inputs (cmake-version, cpp-compiler, cpp-build-type, etc.)
- Add test-source-cpp and test-target-cpp jobs using test-cpp-gtest.yml
- Add compare-cpp and notify-cpp jobs for regression analysis
- Add cpp_has_regressions and cpp_regression_count outputs

Both pytest and C++ tests run in parallel when detected, using the same
regression analysis infrastructure.
@JamesonRGrieve JamesonRGrieve merged commit 93bb9b3 into main Dec 23, 2025
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.

3 participants