Skip to content

QVAC-17408: remove ccache from prebuild workflows#1652

Merged
jpgaribotti merged 2 commits into
mainfrom
ccache-removed
Apr 17, 2026
Merged

QVAC-17408: remove ccache from prebuild workflows#1652
jpgaribotti merged 2 commits into
mainfrom
ccache-removed

Conversation

@jpgaribotti

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

  • ccache setup across the eight prebuild workflows is duplicated and drifted across three incompatible patterns (ARM64-only with broken cache keys, hashFiles(vcpkg.json)-keyed combined cache, and github.sha-keyed split restore/save), adding maintenance load and review noise.
  • Observed hit rates on these prebuild jobs no longer justify the cost of maintaining the ccache install / configure / cache blocks across Linux, macOS, and Windows.

How does it solve it?

  • Removes ccache entirely from every prebuilds-*.yml workflow instead of standardizing it.
  • Deletes, in each in-scope workflow: Install ccache on Linux / ...on macOS / ...on Windows, Configure ccache, Get / Restore / Save ccache cache (both combined actions/cache and split actions/cache/restore + actions/cache/save), Show ccache stats, and the CMAKE_C_COMPILER_LAUNCHER / CMAKE_CXX_COMPILER_LAUNCHER exports to $GITHUB_ENV.
  • Drops the -D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache flags on bare-make generate in prebuilds-qvac-lib-infer-onnx.yml and prebuilds-ocr-onnx.yml.
  • Preserves unrelated Windows bootstrap that shared the ccache step (git config --system core.longpaths true, choco upgrade llvm -y --no-progress) as their own Windows-only step.
  • Extracts the onnx-tts brew unlink fmt || true fmt header-conflict workaround into its own macOS-only step so it survives the ccache removal.
  • In-scope workflows: prebuilds-qvac-lib-infer-whispercpp.yml, prebuilds-qvac-lib-infer-parakeet.yml, prebuilds-qvac-lib-infer-onnx-tts.yml, prebuilds-qvac-lib-infer-onnx.yml, prebuilds-ocr-onnx.yml, prebuilds-qvac-lib-infer-llamacpp-llm.yml, prebuilds-qvac-lib-infer-llamacpp-embed.yml, prebuilds-lib-infer-diffusion.yml.
  • Out of scope: cpp-test-coverage-qvac-lib-infer-parakeet.yml, benchmark-qvac-lib-infer-nmtcpp.yml, benchmark-ocr-onnx.yml — these are not prebuild workflows and still use ccache; they can be revisited separately.

How was it tested?

  • YAML parse-checked locally for all 8 edited workflow files.
  • Verified zero residual references to ccache, CMAKE_C_COMPILER_LAUNCHER, or CMAKE_CXX_COMPILER_LAUNCHER in any prebuilds-*.yml.
  • Ran the prebuilds for each addon, all completed in the expected time.

@jpgaribotti jpgaribotti requested review from a team as code owners April 17, 2026 12:08
Drop ccache install, configure, cache restore/save, stats, and
CMAKE_*_LAUNCHER exports from all prebuilds-*.yml workflows. Also
drop the -D CMAKE_C_COMPILER_LAUNCHER=ccache / -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
flags on `bare-make generate` in prebuilds-qvac-lib-infer-onnx.yml
and prebuilds-ocr-onnx.yml.

Preserve unrelated Windows bootstrap that shared the ccache step
(git config --system core.longpaths true, choco upgrade llvm) and
extract the onnx-tts `brew unlink fmt` fmt-header workaround into
its own macOS-only step.

Non-prebuild workflows (cpp-test-coverage-*, benchmark-*) still use
ccache and are out of scope for this change.
@github-actions

github-actions Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Tier-based Approval Status

**PR Tier:** TIER1

**Current Status:** ✅ APPROVED

**Requirements:**
- 1 Team Member approval ❌ (0/1)
- 1 Team Lead OR Management approval ✅ (3/1)

**Bypass rule:** Triggered (2+ Team Lead approvals (Tier 1 exception)). This PR is approved regardless of tier.

---
*This comment is automatically updated when reviews change.*

@jpgaribotti

Copy link
Copy Markdown
Contributor Author

/review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants