You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(ghcr): publish the CI image to the org namespace
The CI image has not published since 2026-05-04. Every run since fails at
the push:
#9 pushing ghcr.io/ten9876/aethersdr-ci:latest with docker
#9 ERROR: denied: permission_denied: The requested installation does
not exist.
The build itself is fine — all layers complete, and the Dockerfile builds
clean locally. The failure is purely one of namespace. This repository is
owned by the `aethersdr` org, so `secrets.GITHUB_TOKEN` is scoped to
`aethersdr/AetherSDR`; the package lives in the personal `ten9876`
namespace, which that token has no write access to. `packages: write` in
the workflow grants nothing outside the token's own namespace.
This was not a regression from any Dockerfile change. #4656 adding
`ccache` was simply the first Dockerfile push after the access broke,
which is why it looked like the culprit.
Move the package to `ghcr.io/aethersdr/aethersdr-ci`, alongside the
repository that builds it, so the default token can publish it and the
image cannot be orphaned again by an ownership change.
The digest-pin step's regex now matches either owner and always rewrites
to the org path, so a consumer left on the old namespace by a long-lived
branch is normalised rather than pinned to a digest under a namespace
this token cannot publish to.
Sequencing note: consumers move in this same commit, so the org package
must exist and be PUBLIC before this merges. `workflow_dispatch` runs the
workflow as defined on the chosen ref, so dispatching docker-ci-image.yml
on this branch publishes the org image first; the package then has to be
flipped to public by hand, because GHCR creates new packages private and
the `container:` jobs pull unauthenticated — the current ten9876 package
is public, which is why no `credentials:` block was ever needed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
0 commit comments