Skip to content

Commit a36f07f

Browse files
ci: open the Version PR as github-actions[bot] with no CI (#1407)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 827b9a2 commit a36f07f

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

.github/workflows/version-pr.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ name: Version PR
66
# the deliberate act that cuts a release — release.yml takes over from there.
77
#
88
# This workflow only ever opens/updates the PR; it never tags or deploys.
9+
#
10+
# The PR is opened with GITHUB_TOKEN, so it is authored by github-actions[bot]
11+
# and carries no CI: events created with that token don't trigger workflows.
12+
# That is deliberate — the PR only bumps a version string and rewrites
13+
# CHANGELOG.md, and it is re-pushed on every merge to main, so running the full
14+
# matrix (Docker builds included) on it would burn CI on every merge without
15+
# validating anything. The real validation happens after the merge: main runs
16+
# the full suite and release.yml only cuts a release if that run succeeded.
17+
# `ls1intum/hephaestus-maintainers` bypasses the branch ruleset, so the missing
18+
# required checks do not block merging the Version PR.
19+
#
920
# Contributor guide: docs/contributor/release-management.mdx
1021

1122
on:
@@ -28,9 +39,6 @@ jobs:
2839
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
2940
with:
3041
fetch-depth: 0
31-
# PAT (not GITHUB_TOKEN) so the Version PR's own checks run and, once
32-
# merged, its CI/CD run can trigger release.yml.
33-
token: ${{ secrets.GH_PAT }}
3442

3543
- name: Setup pnpm + Node.js
3644
uses: ./.github/actions/setup-pnpm-node
@@ -49,4 +57,4 @@ jobs:
4957
title: "chore(release): version packages"
5058
commit: "chore(release): version packages"
5159
env:
52-
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

docs/contributor/release-management.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ sequenceDiagram
4040
is the explicit opt-out for changes with no user-facing effect; write why in the file body.
4141
2. **The Version PR accumulates.** On every push to `main`, the release workflow maintains a PR
4242
titled `chore(release): version packages` that previews the next version and the assembled
43-
`CHANGELOG.md` section. It is safe to leave open — it updates itself.
43+
`CHANGELOG.md` section. It is safe to leave open — it updates itself. It is opened by
44+
`github-actions[bot]` and deliberately runs **no CI**: it only bumps a version string and
45+
rewrites the changelog, and it is re-pushed on every merge to `main`, so running the full matrix
46+
on it would burn CI without validating anything. Validation happens after the merge — `main` runs
47+
the full suite and a release is only cut if that run succeeds. Maintainers bypass the branch
48+
ruleset, so the absent required checks don't block the merge.
4449
3. **Merging the Version PR cuts the release.** The release workflow tags `vX.Y.Z` at the merge
4550
commit, creates the GitHub Release from the new changelog section, retags the CI-built Docker
4651
images as `X.Y.Z`, `X.Y`, and `latest`, publishes the signed release-pin asset, and starts the

0 commit comments

Comments
 (0)