Skip to content

Auto-release changed container services#1059

Merged
aaylward merged 1 commit intomainfrom
service_yaml
Feb 25, 2026
Merged

Auto-release changed container services#1059
aaylward merged 1 commit intomainfrom
service_yaml

Conversation

@aaylward
Copy link
Copy Markdown
Collaborator

Summary

  • Switch image SHA tags from full SHA to short SHA (7 chars) for cleaner version references
  • Add a new workflow step that compares each image's digest against the digest stored in its most recent GitHub Release
  • Only create a {service}-{short-sha} GitHub Release when a service's container image actually changed

How it works

  1. After pushing :latest and :short-sha tags, the workflow inspects each image's digest
  2. It fetches the digest from the most recent GitHub Release for that service (stored in the release body)
  3. If the digests differ (or no previous release exists), it creates a new release with the image reference, digest, and commit info
  4. If unchanged, the service is skipped — no noise in the releases page

Test plan

  • Push a change affecting only one service → only that service gets a release
  • Push a shared library change → multiple releases created
  • Push a no-op change (formatting) → no new releases
  • Verify image pullable via docker pull ghcr.io/muchq/{service}:{short-sha}

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Feb 25, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
1d4-web 365025e Commit Preview URL

Branch Preview URL
Feb 25 2026, 05:04 AM

Switch SHA tagging from full SHA to short SHA (7 chars) and add a new
workflow step that compares each image's digest against the digest stored
in its most recent GitHub Release. Only creates a new release when a
service's container image actually changed, giving a clean per-service
changelog with rollback-friendly version tags.
@aaylward
Copy link
Copy Markdown
Collaborator Author

The --notes-start-tag flag tells GitHub to generate a changelog of all commits between the previous service tag and the new tag. Since these
are git tags on the same linear main branch, the changelog will include every commit in that range, not just commits that affected that service.

So if portrait was last released at commit A and is now releasing at commit G, the changelog will include commits B through G even if most of them only touched unrelated
services.

Some options to address this:

  1. Accept it — the changelog is "what happened in the repo since this service last changed," which is still useful context
  2. Drop --notes-start-tag — just use the BODY with image/digest/commit info, no auto-generated changelog. Keeps releases clean and factual.
  3. Build a filtered changelog — use git log --oneline $PREV_SHA..$GITHUB_SHA -- to only list commits touching that service's directory, and include that
    in the release body

@aaylward aaylward merged commit 874fc5d into main Feb 25, 2026
12 checks passed
@aaylward aaylward deleted the service_yaml branch February 25, 2026 05:08
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