Files
cpp-project-template/.gitea/workflows/build.yaml
T
tqcq bfde32dbe9
cpp-template / format (ubuntu-22.04) (push) Successful in 1m2s
cpp-template / format (ubuntu-24.04) (push) Successful in 1m3s
cpp-template / build-test (asan, ubuntu-22.04) (push) Successful in 1m53s
cpp-template / build-test (asan, ubuntu-24.04) (push) Successful in 1m48s
cpp-template / build-test (debug, ubuntu-22.04) (push) Successful in 2m6s
cpp-template / build-test (debug, ubuntu-24.04) (push) Successful in 1m40s
cpp-template / build-test (fuzz, ubuntu-22.04) (push) Successful in 7m31s
cpp-template / build-test (fuzz, ubuntu-24.04) (push) Successful in 7m52s
cpp-template / build-test (release, ubuntu-22.04) (push) Successful in 2m17s
cpp-template / build-test (release, ubuntu-24.04) (push) Successful in 2m1s
cpp-template / clang-tidy (ubuntu-22.04) (push) Successful in 1m50s
cpp-template / clang-tidy (ubuntu-24.04) (push) Successful in 1m51s
cpp-template / install-consumer (ubuntu-22.04) (push) Successful in 1m41s
cpp-template / install-consumer (ubuntu-24.04) (push) Successful in 1m43s
cpp-template / no-network-negative (ubuntu-22.04) (push) Successful in 6m54s
cpp-template / no-network-negative (ubuntu-24.04) (push) Successful in 7m5s
cpp-template / format (ubuntu-20.04) (push) Has been cancelled
cpp-template / build-test (asan, ubuntu-20.04) (push) Has been cancelled
cpp-template / build-test (debug, ubuntu-20.04) (push) Has been cancelled
cpp-template / build-test (fuzz, ubuntu-20.04) (push) Has been cancelled
cpp-template / build-test (release, ubuntu-20.04) (push) Has been cancelled
cpp-template / clang-tidy (ubuntu-20.04) (push) Has been cancelled
cpp-template / install-consumer (ubuntu-20.04) (push) Has been cancelled
cpp-template / no-network-negative (ubuntu-20.04) (push) Has been cancelled
feat(fuzz): enable coverage-guided fuzzing with FUZZTEST_FUZZING_MODE=ON
- Set FUZZTEST_FUZZING_MODE=ON in fuzztest.cmake for coverage-guided fuzzing
- Strip ASan flags from FuzzTest's FuzzTestFlagSetup.cmake to prevent
  conflicts with build-time code generators (grammar_domain_code_generator)
- Add ABSL_CONTAINER_DISABLE_SMALL_OBJECT_OPTIMIZATION=1 env var to CTest
  preset and CI pipeline to prevent Abseil raw_hash_set SOO corruption
  caused by coverage instrumentation during static initialization
- Update fuzz preset to RelWithDebInfo for optimized fuzzing performance
- Update comments documenting root cause (Abseil lts_20260107.1 +
  -fsanitize-coverage=inline-8bit-counters incompatibility)
2026-05-19 15:43:33 +08:00

76 lines
2.6 KiB
YAML

name: cpp-template
on:
push:
pull_request:
jobs:
format:
strategy:
matrix:
ubuntu_version: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
runs-on: ${{ matrix.ubuntu_version }}
steps:
- uses: actions/checkout@v4
- name: Check formatting
run: python3 scripts/format.py --check
build-test:
strategy:
matrix:
ubuntu_version: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
preset: [debug, release, asan, fuzz]
runs-on: ${{ matrix.ubuntu_version }}
steps:
- uses: actions/checkout@v4
- name: Configure (${{ matrix.preset }})
run: cmake --preset ${{ matrix.preset }}
env:
FUZZTEST_PRNG_SEED: ${{ matrix.preset == 'fuzz' && '42' || '' }}
- name: Build (${{ matrix.preset }})
run: cmake --build --preset ${{ matrix.preset }} -- VERBOSE=1
- name: Test (${{ matrix.preset }})
run: ctest --preset ${{ matrix.preset }} --output-on-failure ${{ matrix.preset == 'fuzz' && '-L fuzz_smoke' || '' }}
env:
FUZZTEST_PRNG_SEED: ${{ matrix.preset == 'fuzz' && '42' || '' }}
ABSL_CONTAINER_DISABLE_SMALL_OBJECT_OPTIMIZATION: ${{ matrix.preset == 'fuzz' && '1' || '' }}
clang-tidy:
strategy:
matrix:
ubuntu_version: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
runs-on: ${{ matrix.ubuntu_version }}
steps:
- uses: actions/checkout@v4
- name: Configure debug preset for compile commands
run: cmake --preset debug
- name: Run clang-tidy
run: python3 scripts/clang_tidy.py --build-dir build/debug
install-consumer:
strategy:
matrix:
ubuntu_version: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
runs-on: ${{ matrix.ubuntu_version }}
steps:
- uses: actions/checkout@v4
- name: Run install-consumer QA
run: python3 scripts/dev_check.py install-consumer
no-network-negative:
strategy:
matrix:
ubuntu_version: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
runs-on: ${{ matrix.ubuntu_version }}
steps:
- uses: actions/checkout@v4
- name: Check default configure avoids network fetches
run: python3 scripts/dev_check.py no-network-default
- name: Check fuzz lane avoids network fetches
run: python3 scripts/dev_check.py no-network-fuzztest-lane
- name: Check missing archive hash diagnostics
run: python3 scripts/dev_check.py no-network-missing-archive
- name: Check vendored GoogleTest isolation
run: python3 scripts/dev_check.py gtest-isolation
- name: Check FuzzTest optional feature diagnostics
run: python3 scripts/dev_check.py fuzztest-optional-features