chore(ci): centralize reusable gate bootstrap #877
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!877
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/861-shared-bootstrap-artifact"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Centralizes the two-arm
rtbootstrap used by the four PR-CI reusable gates in one checked-in composite artifact:composite/bootstrap-rt/action.ymlowns version-tag cache restore, the shared bootstrap invocation, and fail-closed PATH/runtime verification.scripts/bootstrap-rt.showns the version-tag FETCH arm and the@mainBUILD arm.cmd/rtis present; external consumers build the checked-out.release-toolkittree.scripts/fetch-rt.sh, so its checksum verification and poisoned-cache protection remain authoritative.The four workflows retain only their gate-specific ref resolution and toolkit checkout, then consume the same local action. Unknown refs, missing Go, missing build source, missing FETCH script, missing PATH handoff, and failed builds refuse loudly.
Controls and verification
bats --print-output-on-failure tests/workflows.bats tests/fetch-rt.bats tests/bootstrap-rt.bats— 52 tests passed.shellcheck scripts/bootstrap-rt.sh— passed.go test ./...— passed.go vet ./...— passed.tests/fetch-rt.batscovers cache miss, cache hit without asset request, checksum failure, and poisoned-cache discard.Related dispositions
reusable-release.ymlmigration.@main.Rebased from the requested
bd643d639start after #874 landed. Final base:b22805fccf3d93f3a47ccab5da10d4d975af7783. Final head:e287752a256efb71951747a1b5f9dd04323ff40c.Reviewed exact head
e287752a25(parentb22805fccf) and APPROVED.The four PR-CI gates now consume one checked-in composite action; the shared action preserves version-tag cache restore, FETCH/BUILD dispatch, token/server/repository/cache propagation, PATH handoff, and runnable-binary verification. The workflows no longer carry duplicate bootstrap run blocks.
tests/workflows.batsstructurally verifies all four consumers and the composite contract.Independent execution passed at this exact tree: 52/52 Bats arms (
workflows,fetch-rt, andbootstrap-rt),go build ./...,go vet ./...,go test -count=1 ./..., shellcheck, YAML parsing for all 16 workflows, and diff-check. The real FETCH arm fetchedv0.45.1, verified checksum7fd84018afe175849dae37e9fdac88e4b84f86b8cf442604d2b160be07f5f72b8, and producedrt 0.45.1. The real @main BUILD arm built from the exact PR workspace; a separate external-consumer control selected.release-toolkit. Missing Go, missing build source, and unsupported refs all refused loudly.rt register-check,rt fragment-check, andrt check-self-bootstrapalso pass. Forgejo’s final live read reports this exact head, mergeable=true, and 14/14 successful contexts. No findings.Reviewed exact head
e287752a25(parentb22805fccf) and APPROVED.The four PR-CI gates now consume one checked-in composite action; the shared action preserves version-tag cache restore, FETCH/BUILD dispatch, token/server/repository/cache propagation, PATH handoff, and runnable-binary verification. The workflows no longer carry duplicate bootstrap run blocks.
tests/workflows.batsstructurally verifies all four consumers and the composite contract.Independent execution passed at this exact tree: 52/52 Bats arms (
workflows,fetch-rt, andbootstrap-rt),go build ./...,go vet ./...,go test -count=1 ./..., shellcheck, YAML parsing for all 16 workflows, and diff-check. The real FETCH arm fetchedv0.45.1, verified checksum7fd84018afe175849dae37e9fdac88e4b84f86b8cf442604d2b160be07f5f72b8, and producedrt 0.45.1. The real @main BUILD arm built from the exact PR workspace; a separate external-consumer control selected.release-toolkit. Missing Go, missing build source, and unsupported refs all refused loudly.rt register-check,rt fragment-check, andrt check-self-bootstrapalso pass. Forgejo’s final live read reports this exact head, mergeable=true, and 14/14 successful contexts. No findings.