Issue: Add Continuous Integration with Multiple Platforms
Priority
馃煛 Medium
Description
While GitHub Actions badge exists in README, it's unclear if CI is fully configured. Need comprehensive CI that:
- Tests on Windows, Linux, macOS
- Runs both debug and release builds
- Checks for memory leaks and undefined behavior
- Enforces code quality standards
- Reports test coverage
Proposed Implementation
-
Create .github/workflows/ci.yml:
name: CI
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
build_type: [Debug, Release]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure CMake
run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
- name: Build
run: cmake --build build
- name: Test
run: ctest --test-dir build --output-on-failure
-
Add sanitizer job (Linux only):
sanitize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure with sanitizers
run: |
cmake -B build \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer"
- name: Build
run: cmake --build build
- name: Test
run: ctest --test-dir build --output-on-failure
-
Add code coverage job:
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install lcov
run: sudo apt-get install -y lcov
- name: Configure
run: cmake -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON
- name: Build and test
run: |
cmake --build build
ctest --test-dir build
- name: Generate coverage
run: |
lcov --capture --directory build --output-file coverage.info
lcov --remove coverage.info '/usr/*' --output-file coverage.info
- name: Upload to Codecov
uses: codecov/codecov-action@v3
-
Add status badges to README.md:


Testing & Acceptance Criteria
Issue: Add Continuous Integration with Multiple Platforms
Priority
馃煛 Medium
Description
While GitHub Actions badge exists in README, it's unclear if CI is fully configured. Need comprehensive CI that:
Proposed Implementation
Create
.github/workflows/ci.yml:Add sanitizer job (Linux only):
Add code coverage job:
Add status badges to README.md:
Testing & Acceptance Criteria