ceremony-ci-probe/.github/workflows/self-release.yml
claude-bot-andresmgsl 9782687bd7 feat: dogfood bootstrap — ceremony adopts its own ceremony (#11)
VERSION at 0.1.0-dev, the armed CHANGELOG.md, drills/README.md (what a
drill means here), the self-callers (self-release.yml, self-labels.yml —
local uses:, the one form consumers must never copy), .github/labeler.yml
for the scope job, and the three self-guards in CI. labels.yml gains the
self-consumption bypass (release.yml's twin) so the label bootstrap can run
before any release tag exists; action-exercise's armed/drill-recorded
scratch steps move to self-guards per their own eviction note.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-22 22:19:50 +00:00

27 lines
1.3 KiB
YAML

name: release
# Ceremony's own caller — the dogfood of issue #11. This is the consumer
# stub from docs/CONSUMERS.md with ONE deviation, and consumers must NEVER
# copy it: `uses:` below is a LOCAL path, so every run executes THIS tree's
# release.yml. No pin is the point here — ceremony's own release cannot
# check out a tag that the very run creates (#9's self-consumption bypass
# is the same fact one layer down) — and would be a bug anywhere else: a
# consumer without a pin rides main and eats every unreleased change.
# Consumers write:
# uses: heavy-duty/ceremony/.github/workflows/release.yml@<pinned-tag>
on:
# ONE push key, both filters — YAML maps are last-key-wins; a second
# sibling `push:` silently replaces the first and kills a door (rig's
# review catch).
push:
tags: ["**"] # every tag — a wrong tag must FAIL the assert loudly,
# never be skipped by a shape filter that didn't match
branches: [main]
permissions:
contents: write # tag ref create + release create + the bump push
pull-requests: write # decide's label read; the bump-fallback `gh pr create`
issues: write # --label on that fallback PR rides the issues API
jobs:
release:
uses: ./.github/workflows/release.yml
with:
version-source: file