Repository navigation
v0.14.0 — pinned vcpkg, shared clang-tidy and gcovr actions, builds sized by memory
The ladders resolve the same dependencies on every runner image, the clang-tidy and coverage gates run through actions a local run can share, and the heavy builds are sized by memory.
- vcpkg at a pinned commit (#70, #71): a new
vcpkg-setupaction checks out microsoft/vcpkg atbf19794383e8, which serves Boost 1.92, and every leg that installs dependencies runs it first. Port versions no longer move when the runner image does. - A caller's vcpkg ports on the dependency installs' prefix path (#69): a
dependency_reposentry thatfind_package()s a port of its own configures. - A clang-tidy action (#72, #73):
clang-tidy.yml's four passes live in.github/actions/clang-tidy/clang-tidy.sh, which a local run can call. Every pass runs, and the header pass checks every header, so one round reports every finding. - A gcovr action (#74, #75): the coverage gate's exclusions live in
.github/actions/gcovr/gcovr.sh, run with the same arguments as before. It takes an optionalSEARCH_PATHSfor a local build directory; CI leaves it empty. - A project's own
_ASSERTmacro is excluded from coverage (#65), asassert(is: an upper-case name ending in_ASSERT, at the start of the line. - GCC installs fail loudly (#67, #68): the PPA's update and install are retried until
g++-Nhas an install candidate, the install names that exact version, and the step fails unlessg++-Nis onPATH. During a Launchpad brownout,apt-get install g++-15had installed clang-15 and exited 0. - Builds sized by memory (#66, #76):
sanitizers.yml,gcc.yml,clang.ymlandclang-libc++.ymltakebuild_memory_mib, 4096 by default, and run as many jobs asMemAvailableholds at that budget, between one and one per CPU. On a 16 GB hosted runner that is three, where three 5 GiB units had shut runners down mid-Build.
No input a caller passes changed, and none became required. A caller repins by moving its uses: lines to this commit:
uses: rhalbersma/cpp-ci/.github/workflows/<workflow>.yml@2a7b3577168d22d62a9119b1913c6e0122e78994 # v0.14.0