blob: 58be67ffb08a8f88f0c3ad08aac4dd6845fe3f43 [file] [log] [blame] [view]
### ccache in CI: troubleshooting and controls
This document applies to GitHub Actions CI only.
The CI uses ccache to accelerate C/C++ builds. The cache is stored via GitHub
Actions Cache with weekly rotation, and ccache validates every object retrieval
for correctness.
Common tasks (CI)
- Disable ccache for a run:
- Add `[no-ccache]` in the commit message, or
- Manually dispatch the `Tests` workflow with `disable_ccache=true`.
- Force cache rotation for a run:
- Manually dispatch `Tests` with `cache_suffix` set to any string (e.g., a
short hash). This appends to the cache key so a new cache archive is
created.
When master builds fail
- The Linux job automatically retries without ccache if the initial build
fails on `master`.
Debugging tips (CI)
- Print stats: use the existing `ccache -s` step to inspect hit/miss rates.
- Compiler/version changes: protected by `CCACHE_COMPILERCHECK=content`, so
caches are automatically missed on compiler changes.
- Time macros: CI uses `CCACHE_SLOPPINESS=time_macros`. If your build embeds
`__DATE__`/`__TIME__`, be aware objects may be reused across runs for these
macros.
Notes
- External cache keys rotate weekly; ccache still validates per-object for
correctness.