Repository navigation
Conversation
Add a dedicated pull_request-only `bgfx-example` job that generates and builds examples/bgfx, gating the bgfx lifecycle template / codegen path fixed in #284 behind a real build. The bgfx C++ compile runs ~50 min cold, so the job persists the generated project's local .zig-cache via actions/cache@v4, keyed on hashFiles('labelle-assembler/backends/bgfx/**') with a `bgfx-example-` restore-keys prefix fallback so warm runs restore the compiled C++ objects even when the key rolls. timeout-minutes: 90 covers the cold case. Closes #286 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
PR SummaryLow Risk Overview The job mirrors the sibling-repo checkout and build setup used elsewhere, then uses The wgpu example step comment is updated to say bgfx is gated by this job instead of still being un-gated. Reviewed by Cursor Bugbot for commit e4a8c58. Bugbot is set up for automated code reviews on this repo. Configure here. |
|
Superseded by #295 (merged), which added the dedicated cached bgfx-build job. Closing as redundant — the remaining gap is Android build coverage (the .so/APK are still manual-only), which I'm addressing in a separate Android-NDK CI job. |
Closes #286
What
Adds a dedicated, cached CI job
bgfx-exampleto.github/workflows/ci.ymlthat generates and buildsexamples/bgfx, so bgfx template/codegen regressions are caught by a real build. PR #284 fixed bgfx's lifecycle template and example but had to leave the backend un-gated because its C++ compile runs 50+ minutes cold — far too slow for the shared examples-integration job.Job design
if: github.event_name == 'pull_request'),ubuntu-latest,timeout-minutes: 90to cover the cold case.zig-pkg/labelle-guiunpack path, labelle-core/engine/gfx atmain), same apt deps, samemlugg/setup-zig@v2/ Zig 0.16.0.actions/cache@v4persists the generated project's LOCAL zig cache,labelle-assembler/examples/bgfx/.labelle/bgfx_desktop/.zig-cache—mlugg/setup-zigalready caches the global zig cache, but the expensive bgfx/bimg/bx C++ objects land in the example's local cache.bgfx-example-${{ hashFiles('labelle-assembler/backends/bgfx/**') }}so backend changes roll the key, with abgfx-example-restore-keysprefix fallback so warm runs still restore the bulk of the compiled C++ objects even when the key changes and only the delta rebuilds.labelle generate, which rewrites generated sources but leaves.zig-cacheintact.Verification
This PR's own CI run is the proof: the new
bgfx-examplejob runs on this PR. Note the first run is a cold ~50 min build (no cache exists yet); subsequent PR runs restore the cache via the prefix fallback and should complete in minutes.🤖 Generated with Claude Code