Answer prose round 1: 0 🔴, 6 🟡 (0 misread); the never-on-main reason sits at on:, the overview paragraph stops narrating its test, the AGENTS bullet splits into sentences

This commit is contained in:
2026-10-31 11:19:11 +01:00
parent ee4d09df06
commit a7781869fd
3 changed files with 7 additions and 9 deletions
+2 -2
View File
@@ -1,4 +1,5 @@
name: Release name: Release
# The Hub overview names a released tag, so it is published here only, never on a push to main.
on: on:
push: push:
tags: ['v[0-9]+.[0-9]+.[0-9]+'] tags: ['v[0-9]+.[0-9]+.[0-9]+']
@@ -81,8 +82,7 @@ jobs:
- uses: actions/checkout@v7.0.1 - uses: actions/checkout@v7.0.1
if: github.event_name == 'push' if: github.event_name == 'push'
# Publish the named release's own tree, so the page never pairs one Plainpages tag with another # Publish the named release's own tree, so the page never pairs one Plainpages tag with another
# release's sidecar pins, which is also why it never syncs on a push to main. A version that # release's sidecar pins. A version that was never released fails here.
# was never released fails here.
- uses: actions/checkout@v7.0.1 - uses: actions/checkout@v7.0.1
if: github.event_name == 'workflow_dispatch' if: github.event_name == 'workflow_dispatch'
with: with:
+1 -2
View File
@@ -38,8 +38,7 @@ jobs:
- uses: actions/checkout@v7.0.1 - uses: actions/checkout@v7.0.1
with: with:
fetch-depth: 0 fetch-depth: 0
# A persisted token rides every request as an extraheader, outranking the PAT in the push # A persisted token outranks the PAT in the push URL, and Gitea runs nothing for its pushes.
# URL: Gitea then sees the Actions bot push the tag and starts no workflow for it.
persist-credentials: false persist-credentials: false
- name: Tag a release for what Renovate merged - name: Tag a release for what Renovate merged
env: env:
+4 -5
View File
@@ -340,11 +340,10 @@ Revisit only if the stated reason stops holding.
*text* guard — the test image ships neither `git` nor `bash`. This is why the Docker Hub overview is *text* guard — the test image ships neither `git` nor `bash`. This is why the Docker Hub overview is
`release-tooling/dockerhub-overview.md.tmpl` and not a `.md`: a release reads it and a unit test `release-tooling/dockerhub-overview.md.tmpl` and not a `.md`: a release reads it and a unit test
guards it, so giving it a `.md` name would let a broken `{{VERSION}}` merge with its own guard guards it, so giving it a `.md` name would let a broken `{{VERSION}}` merge with its own guard
skipped. `README.md` is the one markdown tests read — `release-tooling/contract-version.test.ts` skipped. `README.md` is the one markdown tests read, and a README-only change skips them. Accepted:
checks its `apiVersion` samples, `release-tooling/dockerhub-overview.test.ts` that the Hub page the `apiVersion` samples `release-tooling/contract-version.test.ts` checks are illustrative, and
says only what it says — and a README-only change skips both; accepted, because those samples are the copies that matter (`examples/`, `views/`, the template) are gated. A Hub page command the
illustrative, the copies that matter (`examples/`, `views/`, the template) are gated, and the next README dropped (`release-tooling/dockerhub-overview.test.ts`) fails the next gated change. **Valid while no markdown file is rendered or executed.**
gated change catches a README that dropped a Hub command. **Valid while no markdown file is rendered or executed.**
- **CI docker logins share the runner host's Docker config.** The act_runner is host-mode, so - **CI docker logins share the runner host's Docker config.** The act_runner is host-mode, so
`docker login`/`logout` in the workflows mutate one shared `~/.docker/config.json`: concurrent jobs `docker login`/`logout` in the workflows mutate one shared `~/.docker/config.json`: concurrent jobs
can race (one job's logout can 401 another's push — recover by re-running), and tokens sit in that can race (one job's logout can 401 another's push — recover by re-running), and tokens sit in that