fix/macos-private-registry #18

Merged
endmin merged 2 commits from fix/macos-private-registry into main 2026-09-27 16:25:36 +00:00
Owner
No description provided.
fix(macos): keep gbb-macos under a private owner
All checks were successful
CI / Badges (push) Has been skipped
CI / Publish images (push) Has been skipped
CI / Dedupe (push) Successful in 1s
CI / Go (push) Successful in 3m32s
CI / Frontend (push) Successful in 32s
beb9b38215
A Forgejo package has no visibility of its own; it is exactly as public as
its owner. gbb-macos was pushed under the public studioteal org, so the
image -- and the Apple SDK inside it -- was anonymously pullable. The docs
had told operators to "set the package to private", a setting that does
not exist.

- build.macos_image_prefix (GBB_MACOS_IMAGE_PREFIX) names the macOS build
  image's owner separately; empty falls back to image_prefix. The mono
  glue image and other platforms keep image_prefix. The deployed configmap
  points it at the private studioteal-private org on the same host, so
  build.registry's one credential pulls both.
- push-macos-image.sh pushes there, refuses an owner the Forgejo API shows
  as public or limited, and after pushing fetches the manifest anonymously
  and fails if that succeeds.
- It also defaults the tag to the latest release: a release tag predates
  the commit that pins build.image_tag, so from a tag checkout the
  configmap named the previous version and the script refused.
- A failed pull of the macOS image now points at push-macos-image.sh
  rather than `make images`, which builds nothing a cluster can pull.

Config loading rejects unknown keys, so the configmap must roll out with
the server image that knows macos_image_prefix, i.e. with a release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(macos): push and pull gbb-macos as endmin
All checks were successful
CI / Go (push) Successful in 1m37s
CI / Frontend (push) Successful in 33s
CI / Dedupe (push) Successful in 1s
CI / Badges (push) Has been skipped
CI / Publish images (push) Has been skipped
CI / Dedupe (pull_request) Successful in 12s
CI / Go (pull_request) Successful in 1m41s
CI / Frontend (pull_request) Successful in 34s
CI / Badges (pull_request) Has been skipped
CI / Publish images (pull_request) Has been skipped
16d4d70d48
endmin, the service account for automated tasks, is a member of the
private studioteal-private org; the CI account is not. It becomes
build.registry's account, so the one credential the daemon pulls with can
read gbb-macos, and gbb-registry-pull holds its package read/write token.

push-macos-image.sh now takes that token as REGISTRY_TOKEN and:
- logs in as the account before the long build, so a bad token fails fast
- with an organization-scoped token, confirms the org is private and the
  account a member before building
- after pushing, requires the anonymous pull to be refused and the
  account's pull to succeed -- the cluster's own pull, run early

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
endmin merged commit cea65c0285 into main 2026-09-27 16:25:36 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
StudioTeal/GodotBinaryBuilder!18
No description provided.