-
Notifications
You must be signed in to change notification settings - Fork 0
feat(ci): improve Docker workflow with Buildx, caching and semver tags #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add Docker Buildx for multi-arch support - Enable GitHub Actions cache for faster builds - Add semver tagging for version releases (v*) - Build on PRs without pushing (validation only) - Add conditional push based on event type 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR modernizes the Docker workflow by adding multi-architecture build support, build caching, and comprehensive tagging strategies including semver support for version releases.
Key Changes:
- Enables Docker Buildx for multi-platform builds with GitHub Actions cache integration for faster build times
- Implements conditional build behavior: validates Docker builds on PRs without pushing, pushes only on main branch commits and version tags
- Adds semver-based tagging (full version and major.minor) alongside branch, PR, and SHA-based tags
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| type=raw,value=latest | ||
| type=ref,event=branch | ||
| type=ref,event=pr | ||
| type=semver,pattern={{version}} |
Copilot
AI
Dec 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The semver tagging configuration is missing the type=semver,pattern={{major}} pattern. Without this, major version tags (e.g., v1) won't be created, which is a common practice for allowing users to pin to major versions. Consider adding this pattern to provide more flexibility for consumers of the image.
| type=semver,pattern={{version}} | |
| type=semver,pattern={{version}} | |
| type=semver,pattern={{major}} |
| type=ref,event=branch | ||
| type=ref,event=pr | ||
| type=semver,pattern={{version}} | ||
| type=semver,pattern={{major}}.{{minor}} |
Copilot
AI
Dec 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal of the type=raw,value=latest tag means that images pushed from the main branch will no longer be tagged as latest. This could break workflows or documentation that relies on pulling the latest tag. Consider adding back the latest tag for main branch pushes using:
type=raw,value=latest,enable={{is_default_branch}}
This ensures the latest tag is only applied to the default branch (main).
| type=semver,pattern={{major}}.{{minor}} | |
| type=semver,pattern={{major}}.{{minor}} | |
| type=raw,value=latest,enable={{is_default_branch}} |
| type=ref,event=pr | ||
| type=semver,pattern={{version}} | ||
| type=semver,pattern={{major}}.{{minor}} | ||
| type=sha,prefix= |
Copilot
AI
Dec 28, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The SHA tag format uses an empty prefix (prefix=), which will result in tags that are just the raw SHA (e.g., abc123 instead of sha-abc123). This could be confusing as it's unclear what the tag represents. Consider using the default sha- prefix by removing the prefix= parameter, or use a more descriptive prefix to make it clear these are commit SHA tags.
| type=sha,prefix= | |
| type=sha |
This pull request updates the GitHub Actions workflow for building and publishing Docker images. The changes improve the workflow by supporting publishing on new tags, enhancing caching, and refining image tagging strategies.
Workflow triggers and structure:
main, but also on new version tags (v*) and pull requests targetingmain.Docker build and publishing enhancements:
latest.cache-fromandcache-tooptions.🤖 Generated with Claude Code