chore(ci): add CI_PROVIDER toggle between Blacksmith and GitHub-hosted runners#5808
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview
Reviewed by Cursor Bugbot for commit 031d1ad. Bugbot is set up for automated code reviews on this repo. Configure here. |
Greptile SummaryThis PR adds a repository-level switch between Blacksmith and GitHub-hosted CI. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "chore(ci): fail unrecognized CI_PROVIDER..." | Re-trigger Greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 031d1ad. Configure here.
Summary
CI_PROVIDERrepo variable that switches all CI between Blacksmith and GitHub-hosted runners. Unset = Blacksmith, so current behavior is unchanged until deliberately flipped.github/actions/cache-mount(stickydisk vsactions/cache) and.github/actions/docker-build(Blacksmith builder vsdocker/setup-buildx-action+docker/build-push-action)ci.yml,test-build.yml,migrations.yml,docs-embeddings.yml, and the three publish workflows. ARM maps toubuntu-24.04-armTo flip:
gh variable set CI_PROVIDER --body github/gh variable delete CI_PROVIDERNotes
github.run_idto the key and restores by prefix.actions/cacheskips its save step on an exact key hit, which would otherwise freeze each cache at whatever the first run wrote — this reproduces sticky-disk's rolling behaviorprovenance: false/sbom: falsemoved into the composite instead of being repeated per call site. They're load-bearing: attestation manifests break theimagetools createretagging thatpromote-imagesandcreate-ghcr-manifestsdepend ondocker-buildabsorbs the separate "Set up Docker Buildx" step, so each build site went from two steps to oneci.ymlheader comment along with the flip instructionsuseblacksmith/*step added outside the two composites hard-errors in GitHub mode rather than silently degrading. No fallback shimsType of Change
Testing
actionlintclean across all workflows. Confirmed it validates the composite wiring by checking it catches a deliberate bad input name at every call siteyqparses all 8 workflows + both action filesbun run lint:checkpasses (19/19 tasks)bun run check:api-validation:strictpassesupload-artifact/download-artifactanywhere, so every inter-job handoff is a registry tag or a plain string output — a run that straddles a provider flip still promotes a coherent image setChecklist