feat(ci): auto-mirror each cut to Codeberg via reusable workflow #318
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#318
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Motivation
Set I Track A (per Bosun 312c). Forward-going automation for the Codeberg mirror.
After #308's one-shot migration backfills the 38 historical releases, every subsequent cut needs to auto-mirror to
codeberg.org/FrankenBit/release-toolkitso the Codeberg-side stays in-sync with substrate-of-record. Without automation, the mirror drifts and #308's migration script would have to re-run manually after every cut — high toil.Reusable-workflow shape (per Bosun ratify): isolate mirror from cut so mirror-failure doesn't cascade from cut-failure and external adopters can opt-in independently.
What ships
.forgejo/workflows/reusable-mirror-to-codeberg.yml(new) — reusable workflow that takesforgejo_owner/repo,codeberg_owner/repo,tag_name, andruns_onas inputs. Reads release-body from Forgejo (source of truth) + POSTs to Codeberg. Idempotent (GET-before-POST) + warn-not-fail on Codeberg errors..forgejo/workflows/release.yml— adds amirrorjob to toolkit-self's consumer wrapper. Depends onrelease, gated onmode == 'cut'(skips update + noop). Uses./.forgejo/workflows/reusable-mirror-to-codeberg.yml(local ref) to sidestep the bootstrap-lag pattern; external adopters use the tagged form.Secret
CODEBERG_MIRROR_PAT— Codeberg PAT with write:repository on the mirror repo. Provisioned to release-toolkit's Actions secrets. Missing secret → workflow warns + exits 0 (external adopters aren't forced to provision).Design decisions
./.forgejo/workflows/...) not tagged ref: sidesteps the bootstrap-lag class where a newly-added reusable workflow doesn't yet exist at the tag the toolkit is pinned to. External adopters use the tagged form once released.::warning::on skip so operator sees it in workflow summary.needs: release).Related
Priority
priority/mediumsize/S— modest workflow addition; no risk of substrate-of-record failure due to warn-not-fail. Blocks v1.0.0's clean-mirror stability-signal readiness.Closing as duplicate of #309 (Bosun's superseding tracker, same scope). Number-collision from parallel filing during Set I kickoff. All work continues in #309.