feat(ci): reusable-promote-squash.yml — clean squash promotion for bluefin/bluefin-lts (C1/C5) - #161
Merged
Merged
Conversation
Implements consistency-audit items C1 and C5:
C1 — shared squash-promote logic for bluefin and bluefin-lts
- Always rebuilds squash branch from current origin/main — eliminates
staleness/conflict drift that causes merge friction
- Replaces per-repo 340–354 LoC workflows with ~25-line thin callers
- Removes GraphQL merge-queue enqueue polling loop; uses --auto instead
- Preserves: release-gate checks, failure-issue tracking, triggers
C5 — canonical JSON schema for .github/release-state.yaml
- Used by dakota today; bluefin/bluefin-lts adopt when C1 lands
- Validates via check-jsonschema pre-commit hook in each consumer
Parent: projectbluefin/common#583
Tracks: projectbluefin/common#584, projectbluefin/common#588
Assisted-by: Claude Sonnet 4.5 via pi
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Dependency ReviewThe following issues were found:
License Issues.github/workflows/reusable-promote-squash.yml
OpenSSF Scorecard
Scanned Files
|
This was referenced Jun 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements consistency-audit C1 (shared promote logic) and C5 (release-state schema) from projectbluefin/common#583.
C1 —
reusable-promote-squash.ymlShared workflow for the squash-promote pattern used by
bluefinandbluefin-lts. Companion to the existingreusable-promote.yml(digest-based, used bydakota).Key improvements over the per-repo 340–354 LoC workflows:
origin/main— always cleangh pr merge --auto— fires when checks pass, no pollingInputs:
variants— JSON array of variant objects forreusable-release-gate.ymlcosign_identity_regexp— cert identity regexrun_e2e/e2e_suites/e2e_image— gate configregistry— GHCR prefix (default:ghcr.io/projectbluefin)Jobs preserved: promote → gate (release-gate) → close-failure-issue / report-failure
C5 —
docs/schemas/release-state.schema.jsonCanonical JSON Schema (draft/2020-12) for
.github/release-state.yaml. Used bydakotatoday;bluefin/bluefin-ltswill adopt when they wirereusable-promote.ymlcallers.Test plan
update-v1-tag.ymlMerge order
This PR must merge first. The thin-caller PRs reference this commit SHA — they will run against this workflow at
72ee991c06c58b865c2419db0af8748eef70199buntil Renovate bumps to the new v1 tag after merge.Parent issues: common#584 · common#588 · common#583