CI: authenticate to the registry with REGISTRY_TOKEN, not GITHUB_TOKEN (#64) #85
No reviewers
Labels
No labels
area/ai
area/backend
area/frontend
area/infra
area/scheduler
area/wled
good-first-issue
priority/high
priority/low
priority/medium
type/bug
type/chore
type/ci-cd
type/docs
type/feature
type/qa
v1.0.0
v1.1.0
v1.2.0
v2.0.0
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED!85
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/registry-token"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes the publish step from
b252b8f, which failed on its first real run and leftmainred.The failure
docker loginsucceeded; the push was rejected.secrets.GITHUB_TOKENdoes not carrywrite:packagescope on this instance.I had copied the auth pattern from
release.yml— butrelease.ymlhas never run (no tags exist,release_counter: 0), so that pattern was never actually exercised. I propagated an unverified assumption rather than checking it.The working pattern was already on this instance:
marginaliapublishes here, and its workflow states "Requires a repo Actions secret REGISTRY_TOKEN with write:package scope", then logs in with that token.Two fixes
1.
ci.ymlandrelease.ymlboth switch tosecrets.REGISTRY_TOKEN.release.ymlhad the identical latent bug. Because it has never run, it would have failed the same way at the worst possible moment — during an actual release — and taken #3 and #4's "images land in the registry" with it. Better found now than atv1.0.0.The other
GITHUB_TOKENuse further downrelease.ymlis deliberately untouched: creating a release needs repo scope, which that token does have. Only the registry pushes were wrong.2. Username pinned to
rbrooksinstead of${{ github.actor }}.The token belongs to
rbrooks. Now that #56 enabled Renovate automerge, a merged dependency PR runs asrenovate-bot, which would not match the token owner — an intermittent failure that would only ever appear on automerged PRs, and would have been thoroughly confusing to diagnose.Verification
The secret has been created by the operator.
Note that CI passing on this PR does not prove the fix — the publish steps are gated on pushes to
main, so they are skipped here. The real test is themainrun after merge. I will confirm:mainis pullable from the dev host before calling it done, and will not claim success from a green PR alone.