From 9ac85493a79cda000aba3d73d748d07d50b6a835 Mon Sep 17 00:00:00 2001 From: Jarvis Date: Thu, 20 Aug 2026 11:41:52 +0000 Subject: [PATCH] docs(agents): record that a green release run can still publish nothing chart-releaser pushes one gh-pages commit per chart, and pushes seconds apart get throttled: the Pages build is rejected before it runs (errored, duration 0) while the release workflow stays green and the GitHub Release is created, so charts.api7.ai keeps serving the previous index with no alert anywhere. Hit today releasing gateway 3.10.12 and 3.9.10 together, and on 2026-08-06 before that; both recovered on a plain rebuild of the same commit. --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index b47cb13..f3927e6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,6 +59,7 @@ Operational rule: **on any `release/*` branch, only bump the charts you actually - top-level `concurrency: { group: helm-chart-release, cancel-in-progress: false }`: all lines share one index, so releases must be serialized and an in-progress run must never be cancelled, or a release could be dropped. - `CR_SKIP_EXISTING: true`: already-released versions are skipped and the index is merged (not overwritten), so multiple branches are safe. - the GitHub Release tag is `-` (e.g. `gateway-3.9.0`); the numbering rule keeps it unique across lines. +- **a green release run does not mean published.** chart-releaser pushes one `gh-pages` commit per chart it releases, and pushes landing seconds apart get throttled: the Pages build is rejected before it runs (`status: errored`, `duration: 0`) while the workflow still reports success and the GitHub Release still exists. `charts.api7.ai` then keeps serving the previous `index.yaml`, so `helm repo update` never sees the new chart — and nothing alerts. Releasing two lines together (a `main` PR and a `release/*` PR merged back to back) reliably triggers it. After any release check `gh api repos/api7/api7-helm-chart/pages/builds --jq '.[0]'`; on a `duration: 0` error re-run it with `gh api --method POST repos/api7/api7-helm-chart/pages/builds` — the same commit builds fine on retry. `gh-pages`'s `index.yaml` is the source of truth for what chart-releaser produced; the served copy tells you what users can actually install. - `ci.yaml` (lint / ct install / helm-docs) also covers `release/**`. - after editing a chart, regenerate **every** chart's `README.md` with `helm-docs --chart-search-root=charts` — the CI check diffs all of them, not just the one you touched. Build the binary the way CI does, `go install github.com/norwoodj/helm-docs/cmd/helm-docs@v1.13.1`, and keep it first on `PATH` (the `helm-docs` pre-commit hook runs whatever it finds there). A **released** helm-docs binary — any version, v1.13.1's own tarball included — has a version string baked in and therefore appends an `Autogenerated from chart metadata...` footer to every README that has no `README.md.gotmpl`, which CI then rejects; a `go install` build carries no version string and omits the footer.