Skip to content

Commit 82238da

Browse files
docs: correct the GHCR pull path and record the release-tag concurrency limit
README told users to install from oci://ghcr.io/aehrc/<chart>, which cannot work: `helm push` appends the chart name from the package, so the pullable reference is oci://ghcr.io/aehrc/<chart>-helm/<chart>. The note further up the file already had it right, so the README contradicted itself. Verified against all three published 0.4.0 / 0.1.1 / 0.2.0 packages. Also documents that `cancel-in-progress: false` does not give the release-charts concurrency group an unbounded queue — GitHub keeps one running plus one pending run and cancels the pending one when a third arrives, which is what happened when all three release tags were pushed together. Push release tags one at a time; recover a cancelled run with `gh run rerun`.
1 parent b594777 commit 82238da

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

CLAUDE.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,27 @@ The GitHub Actions workflow (`release.yml`) then:
7575
- Packages all charts via `helm/chart-releaser-action` (`skip_existing: true` so only the new chart gets a release)
7676
- Creates a GitHub Release with the chart `.tgz` as an asset
7777
- Updates the `gh-pages` branch `index.yaml` (Helm repo index)
78-
- Pushes the chart to GHCR (`ghcr.io/aehrc/<chart>-helm`)
78+
- Pushes the chart to GHCR. It is pushed to `oci://ghcr.io/aehrc/<chart>-helm`, but `helm push`
79+
appends the chart name from the package, so the **pullable reference repeats it**:
80+
`oci://ghcr.io/aehrc/<chart>-helm/<chart>`. Pulling `oci://ghcr.io/aehrc/<chart>-helm` fails with
81+
`not found`. Note that GHCR also answers `not found` for a package you lack `read:packages` for, so
82+
a local `helm show chart` failure is not evidence the push failed — check the workflow log.
83+
84+
### ⚠️ Push release tags one at a time
85+
86+
`cancel-in-progress: false` does **not** give the `release-charts` concurrency group an unbounded
87+
queue. GitHub holds at most one *running* plus one *pending* run per group; a third arrival
88+
**cancels the pending one**. Pushing all three tags at once (observed 2026-08-12) left the middle
89+
run cancelled.
90+
91+
The damage is limited but real: `chart-releaser` packages every chart with `skip_existing: true`, so
92+
the first run to survive creates all the GitHub Releases and the merged `index.yaml`. What a
93+
cancelled run loses is its own `index.html` badge bump and its GHCR push. Recover with
94+
`gh run rerun <id>` once the group is free — the tag still exists, so the re-run is safe and
95+
idempotent.
96+
97+
Release Please's `publish` job is not exposed to this: its `max-parallel: 1` matrix runs inside a
98+
single workflow run, so the charts serialise without ever queueing separate runs.
7999

80100
### If the workflow fails with 403
81101

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ helm install my-ontoserver ontoserver/ontoserver -f your-values.yaml
4444
4545
**From OCI (GitHub Container Registry):**
4646
```bash
47-
helm install my-ontoserver oci://ghcr.io/aehrc/ontoserver --version <version> -f your-values.yaml
48-
helm install my-ontoserver-extras oci://ghcr.io/aehrc/ontoserver-extras --version <version> -f your-extras-values.yaml
49-
helm install my-indexer oci://ghcr.io/aehrc/ontoserver-indexer --version <version> -f your-indexer-values.yaml
47+
# The chart name appears twice: `helm push` to oci://ghcr.io/aehrc/<chart>-helm appends the
48+
# chart name from the package, so the pullable reference is <chart>-helm/<chart>.
49+
helm install my-ontoserver oci://ghcr.io/aehrc/ontoserver-helm/ontoserver --version <version> -f your-values.yaml
50+
helm install my-ontoserver-extras oci://ghcr.io/aehrc/ontoserver-extras-helm/ontoserver-extras --version <version> -f your-extras-values.yaml
51+
helm install my-indexer oci://ghcr.io/aehrc/ontoserver-indexer-helm/ontoserver-indexer --version <version> -f your-indexer-values.yaml
5052
```
5153

5254
See each chart's README for full configuration reference:

0 commit comments

Comments
 (0)