Skip to content

Rust #325: publish native release candidates to GHCR without Docker Hub - #883

Merged
rmcdaniel merged 2 commits into
mainfrom
rust-325-native-rc-ghcr
Oct 30, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
rust-325-native-rc-ghcr

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Part of #325. Operator decision (October 30): qualify a native release candidate on GHCR now, and add Docker Hub later.

What changes

  • plan job. It reads the tag. A native-X.Y.Z-rc.N candidate publishes to GHCR only, skipping the Docker Hub sign-in, the Docker Hub push name and the Docker Hub attestation. Any other version still publishes to both registries, and still fails closed while the Docker Hub credentials are absent. The job accepts only native-X.Y.Z or native-X.Y.Z-rc.N.

  • native-release-publish.sh. It takes PUBLISH_DOCKERHUB (true or false) and refuses:

    • a non-candidate version that would skip Docker Hub;
    • any other value.

    Otherwise, every registry check stays as before: tag absent before, index identical, exactly the smoked platform digests.

  • Environment. dockerhub-native now exists with a main-only deployment branch policy and no secrets, as Security asked before any native publication. The Docker Hub repository durableworkflow/server-native and its scoped token are still to come.

Checks

  • actionlint is clean.
  • With a stub docker, the publish script:
    • publishes native-3.0.0-rc.1 with false to GHCR only;
    • refuses native-3.0.0 with false;
    • publishes native-3.0.0 with true to both registries;
    • publishes an RC with true to both registries;
    • refuses an invalid flag.

Next

After merge, tag native-3.0.0-rc.1 on main and dispatch this workflow. The resulting image is what the release-candidate performance qualification and installed acceptance run against.

🤖 Generated with Claude Code

rmcdaniel and others added 2 commits October 30, 2026 14:34
The operator chose (October 30) to qualify native release candidates
before Docker Hub credentials exist. A new plan job reads the tag: a
native-X.Y.Z-rc.N candidate publishes to GHCR only, and skips the Docker
Hub sign-in, push and attestation; any other version still requires both
registries and fails closed without the Docker Hub credentials. The
publish script refuses a non-candidate version that would skip Docker
Hub, and any value other than true or false.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-native-release-tags.sh drove the publisher without the new
PUBLISH_DOCKERHUB input, so it stopped at that refusal. It now passes the
input explicitly and also checks that only a release candidate may skip
Docker Hub and that the choice must be explicit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel added this pull request to the merge queue Oct 30, 2026
Merged via the queue into main with commit 03a3e7b Oct 30, 2026
60 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant