Add local pre-push validation gates
All checks were successful
libakerror CI Build / cmake_build_freestanding (push) Successful in 2m37s
libakerror CI Build / cmake_build (push) Successful in 2m52s
libakerror CI Build / sanitizer (push) Successful in 2m56s
libakerror CI Build / coverage (push) Successful in 2m49s
libakerror CI Build / mutation_test (push) Successful in 47m10s

Co-authored-by: Andrew Kesterson <andrew@starfort.tech>
This commit is contained in:
2026-08-05 18:33:54 -04:00
parent ce17a26e02
commit 5dfb03eadd
2 changed files with 114 additions and 0 deletions

View File

@@ -43,6 +43,26 @@ cmake --build build
cmake --install build
```
## Local pre-push checks
Enable the repository's local pre-push checks once in each clone:
```bash
git config core.hooksPath .githooks
```
The hook runs cppcheck when `scripts/cppcheck.sh` and cppcheck are available,
then the default build and tests, followed by the `AKERR_USE_STDLIB=OFF`
build and tests. Builds are kept under `.git/akerr-prepush` and do not disturb
the normal `build/` directory. Mutation testing is opt-in because it is slow:
```bash
AKERR_HOOK_MUTATION=1 git push
```
CI remains the hard gate. For an intentional local escape, use Git's standard
`git push --no-verify` option.
The library depends on `stdlib` and on POSIX threads. Both are optional at the
cost of some functionality — see [docs/building.md](docs/building.md) for
`-DAKERR_USE_STDLIB=OFF` and