Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/actions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ by the GitHub Release that `release-publish` creates.
| `release-candidate` `stage: propose` | `workflow_dispatch` on the default branch | bumps `version_file`, runs `bump_command` (lockfile, path-dep versions), drafts this release's changelog entry under `## vX.Y.Z` (dated at settle), syncs the previous release's entry from its tag, opens `chore/release-candidate-vX.Y.Z` PR |
| `release-candidate` `stage: cut` | that PR merging | creates `release-vX.Y.Z` at the merge commit |
| `release-settle` | `workflow_dispatch` with version + tip SHA | guards, warns if the tip lacks a workflow the default branch has, regenerates the entry up to the tip and stamps the date, opens `chore/release-settle-vX.Y.Z` PR onto the release branch (a re-run on a new tip closes the previous settle PR and opens a fresh one; nothing is ever force-pushed) — or, with `settle_mode: direct` and an authorised actor (`settlers`), commits it straight to the branch and publishes at once |
| `release-publish` | the settle PR merging | annotated tag at the merge commit (refuses if it exists or the branch drifted), GitHub Release with the entry as notes |
| `release-publish` | the settle PR merging (PR mode only; in direct mode `release-settle` runs it in the same job) | annotated tag at the merge commit (refuses if it exists or the branch drifted), GitHub Release with the entry as notes |

The changelog has one owner per phase and is never back-merged: the candidate
PR drafts the entry on the default branch and syncs the *previous* release's
Expand Down Expand Up @@ -422,7 +422,8 @@ Requirements in the consumer repo:
PR's merge into the release branch, and `on-release.yml` from the tag's
tree (that is how `release` events resolve a workflow). A release branch
cut before such a file landed needs it cherry-picked through its own PR
before the settle PR merges; `release-settle` warns when the settled
before settlement is dispatched (or, in PR mode, before the settle PR
merges); `release-settle` warns when the settled
commit lacks a workflow the default branch has, because the alternative is
a Release with nothing attached and no failed run.

Expand Down
11 changes: 6 additions & 5 deletions workflow-templates/on-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: On Release
# Publish targets for a release. Runs when the release pipeline publishes the
# GitHub Release (release-publish creates it after the tag), and on demand
# for a rehearsal on a tag ref, which runs every job with nothing uploaded,
# published or attached:
# published or attached (release-settle creates the Release right after the
# tag; release-publish does the same for repos that settle by PR):
# gh workflow run on-release.yml --ref vX.Y.Z -f dry_run=true
# The tag being released is always the run's own ref; there is no tag input.
# The `publish` environment authorises that ref, so it must also be what
Expand All @@ -13,10 +14,10 @@ name: On Release
# workflow from the tag's tree, not from the default branch. A release branch
# cut from a default branch that has it carries it; a branch cut before it
# landed needs it cherry-picked (through its own PR — the `release-*` ruleset
# requires one) before the settle PR merges, or the Release publishes with
# nothing attached and no failed run. release-settle warns when the settled
# commit lacks a workflow the default branch has. A rehearsal likewise needs
# a tag whose tree has this file.
# requires one) before settlement is dispatched, or the Release publishes
# with nothing attached and no failed run. release-settle warns when the
# settled commit lacks a workflow the default branch has. A rehearsal
# likewise needs a tag whose tree has this file.
#
# Credentials live in the `publish` environment: create it with a deployment
# policy of "selected tags: v*" and put CARGO_REGISTRY_TOKEN / GCP_AUTH_KEY
Expand Down
2 changes: 1 addition & 1 deletion workflow-templates/release-publish.properties.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Release Publish",
"description": "Tag and publish a settled release when its settle PR merges.",
"description": "Tag and publish a settled release when its settle PR merges (PR-mode settlement only).",
"iconName": "octicon tag",
"categories": [
"Automation"
Expand Down
2 changes: 1 addition & 1 deletion workflow-templates/release-settle.properties.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Release Settle",
"description": "Propose settling a release candidate: generate notes, update the changelog, open the settle PR.",
"description": "Settle a release candidate: the dispatch is the approval (release environment + admin check); notes, changelog commit, tag and GitHub Release follow.",
"iconName": "octicon tag",
"categories": [
"Automation"
Expand Down
Loading