Skip to content

chore: establish versioned image release policy - #468

Merged
weicao merged 4 commits into
mainfrom
chore/release-image-rules-task21
Aug 22, 2026
Merged

chore: establish versioned image release policy#468
weicao merged 4 commits into
mainfrom
chore/release-image-rules-task21

Conversation

@weicao

@weicao weicao commented Aug 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • replace automatic latest publication with a manual exact-SHA build that accepts only main-reachable commits and creates immutable prerelease plus sha-<8> tags
  • add digest-only promotion to an immutable stable tag and latest after an independent acceptance reference is supplied
  • verify multi-architecture digests and OCI identity, preserve public release evidence, and expose myduckserver --version for images built from this commit onward
  • document version, promotion, rollback, and baseline rules

The first baseline remains the exact application source 5e29d94db535e51876ec9465c5ef78a8e2c2d92a; its identity is read from OCI labels because that source predates --version.

Verification

  • go run github.com/rhysd/actionlint/cmd/actionlint@v1.7.7 .github/workflows/release-image.yml .github/workflows/promote-image.yml
  • git diff --check
  • go test . -run '^TestVersionInfo$' -count=1
  • go test ./backend -count=1
  • go test ./transpiler -count=1
  • linker-injected build produced the exact expected myduckserver --version output

A local arm64 image build reached go mod download after completing the base and runtime dependency stages, then hit a transient proxy.golang.org timeout. No workflow or remote image publication was triggered; container label/version evidence will be supplemented from the cached retry.

Build immutable prerelease and source tags from an exact main-reachable SHA, then promote an independently accepted digest without rebuilding.
@weicao
weicao requested a review from leon-ape August 21, 2026 16:32
weicao added 3 commits August 22, 2026 00:50
Fail closed on registry query errors, require an RC for stable promotion, pin credential-bearing workflow actions, and record promotion time.
Pin the Go builder and Debian runtime to compatible multi-architecture manifest digests. Record both base image digests in release evidence and document the post-fix exact-main baseline.
Require each pinned base image to carry a readable tag before its manifest digest. Replace the retired compatibility SHA in the tag policy example.

@leon-ape leon-ape left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved exact head 025358e after verifying the current PR head, valid GitHub signature, and tree 9e6327aa4317d788fc16705907eefa0cf433cd91.

@weicao
weicao merged commit 9767800 into main Aug 22, 2026
1 of 14 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.

2 participants