ci: publish the Image on push to main (#7) #28
No reviewers
Labels
No labels
bug
enhancement
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
vicoli-oss/docker-forgejo-mcp!28
Loading…
Reference in a new issue
No description provided.
Delete branch "piscis/forgejo-7-publish-image"
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?
Closes #7
Summary
A push to
main, or a dispatch frommain, now builds, smoke-tests and publishes the multi-arch Image tocode.vicoli.de/vicoli-oss/forgejo-mcp. PRs and dispatches from other branches still only build and smoke-test. They never log in.make print-tag(#16). The workflow doesn't work out the Rebuild again.sourceis now this repo,licenses=GPL-3.0,version= the Image tag (3.2.0-r1), and CI addsrevision= this repo's commit. I moved Upstream's source URL and commit tode.vicoli.upstream.sourceandde.vicoli.upstream.revision.3andlatestnever go back to an older Upstream Version. The ticket saysX.Y.Z,X.YandX"always" move, but moving3to a 3.1 Rebuild after 3.2 would break semver, so I read "newest Rebuild" per line.main) queue in one workflow-levelconcurrencygroup, so two runs can't both see a newX.Y.Z-rNmissing and both push it. PR runs get a group of their own and never wait. Forgejo ignoresconcurrencyon a job, so it has to sit at workflow level.Evidence
I tested on a throwaway branch (now deleted). Its workflow published to a test package,
vicoli-oss/forgejo-mcp-ci-test(now deleted), and treated that branch asmain.3.2.0-r1, moved3.2.0 3.2 3 latest, anonymous inspect lists linux/amd64 + linux/arm64Pin changed: false, "already exists ... nothing to publish"REBUILD=2,REBUILD_OF=v3.1.0, which still resolves to 3.2.0-r13.2.0 3.2 3 latestto r23.1.0 3.1, "not moving 3/latest: 3.2.0-r2 is newer"concurrency: a push + 2 dispatchesconcurrency: 2 dispatches + a push of a new tag 3.1.0-r23.2.0-r3intags/listdiffempty), so nothing was overwritten.imagetools inspect: an index with linux/amd64, linux/arm64 and 2 attestation manifests. The SBOM is SPDX-2.3 with 49 packages per platform. The provenance is SLSA and records the build args and labels.docker pullwith an emptyDOCKER_CONFIG: arm64 on an arm64 Mac,--platform linux/amd64on the Mac, and on the x86_64 runner (#33). Each ranforgejo-mcp 3.2.0. The labels shown above came from the pulled image.Merge Danger
Door: one-way
Publishing
X.Y.Z-rNis permanent, since the workflow never overwrites it. Right nowmain's Pin is v3.1.0 (the temporary Renovate test from #8). Merging before the Renovate PR restores v3.2.0 would first publish3.1.0-r1and pointlatestat it. Merge this after the Pin is back on v3.2.0.Blast Radius: registry
Every push to
mainnow runs withPACKAGE_TOKEN. Publish runs queue behind each other. If a dispatch runs before the push run for the same Pin change (#46–48), the push run goes red with "already exists, but this push changed the Pin", even though the Image was published correctly.d9731537fbe2df5ec827