CI: publish :main and :sha-* images on every merge to main (#64) #83
No reviewers
Labels
No labels
area/ai
area/backend
area/frontend
area/infra
area/scheduler
area/wled
good-first-issue
priority/high
priority/low
priority/medium
type/bug
type/chore
type/ci-cd
type/docs
type/feature
type/qa
v1.0.0
v1.1.0
v1.2.0
v2.0.0
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED!83
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/publish-main-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 the main body of #64. Prerequisite for #65 (deploying the dev server by pulling instead of building on the host).
What it does
After the health smoke test and E2E pass on a push to
main,docker-e2etags and pushes togit.rhoving.com/rbrooks/iris-wledas:mainand:sha-<short>.The image is retagged, not rebuilt.
iris:e2e— the exact artifact the E2E just ran against — is what gets pushed, so there is no window in which the published image differs from the tested one. That also means no extra build cost; we removed a redundant build in #79 and are not adding one back.Access
Gated on
github.event_name == 'push' && github.ref == 'refs/heads/main'. Since #56 blocked direct pushes, that means merged PRs and nothing else.The
docker/login-actionstep sits behind the same guard, so pull-request runs never authenticate to the registry and PR builds are handed no credentials. Auth is the built-in Actions token, matchingrelease.yml— no long-lived PAT.What this PR cannot prove
The publish steps are skipped on
pull_request, so CI passing here does not exercise them. That is inherent to the feature: the first real test is themainrun immediately after this merges. I will verify the package actually appears in the registry then, and report back rather than assume.Registry hygiene — deliberately not in this PR
:sha-*accumulates one tag per merge. The right place to bound that is a Forgejo owner-level package cleanup rule (Settings → Packages → Cleanup Rules, keep N versions), which is instance configuration, not repo code. Hacking a prune loop into the workflow would need package-delete permissions the Actions token may not carry, and a silently-failing cleanup step is worse than none.That checkbox on #64 stays open with this as the recommendation.
CI: publish :main and :sha-<short> on every merge to main (#64)to CI: publish :main and :sha-* images on every merge to main (#64)