feat(infra): Publish Docker images on release#1523
feat(infra): Publish Docker images on release#1523andrey-fomin wants to merge 1 commit intocrate-ci:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adds official Docker Hub publishing to the release pipeline so users can pull a maintained crateci/typos image instead of building from source or relying on third-party images (refs #427).
Changes:
- Document Docker as an installation/usage option in the README.
- Extend the post-release workflow to build per-arch images, then publish a multi-arch manifest with semver +
latesttags to Docker Hub. - Add a CI job to validate the Docker build on amd64 and arm64.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| README.md | Adds Docker pull instructions for the official image. |
| .github/workflows/post-release.yml | Builds/pushes per-arch images and merges them into a multi-arch, semver-tagged Docker Hub release image. |
| .github/workflows/ci.yml | Adds a Docker build validation job (amd64 + arm64) as part of CI. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| include: | ||
| - platform: linux/amd64 | ||
| runner: ubuntu-latest | ||
| - platform: linux/arm64 | ||
| runner: ubuntu-24.04-arm | ||
| runs-on: ${{ matrix.runner }} | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v6 |
There was a problem hiding this comment.
This adds an ARM64 Docker build to the PR CI matrix using the ubuntu-24.04-arm runner. That will run on every PR and can significantly increase CI time/cost and may be impacted by ARM runner availability. Consider running the ARM64 Docker build only on push to master/tags (or a scheduled workflow), or building ARM64 via Buildx+QEMU on ubuntu-latest if the goal is just to validate the Dockerfile.
| include: | |
| - platform: linux/amd64 | |
| runner: ubuntu-latest | |
| - platform: linux/arm64 | |
| runner: ubuntu-24.04-arm | |
| runs-on: ${{ matrix.runner }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| platform: ["linux/amd64", "linux/arm64"] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 |
There was a problem hiding this comment.
Hi @epage. Which approach do you think makes the most sense here?
- Keep the current setup and use a separate ARM64 runner.
- Skip building the ARM64 Docker image in CI, assuming that a successful AMD64 build makes an ARM64 failure unlikely.
- Use QEMU for ARM64 builds.
|
Before enabling this workflow, repo owners will need to:
One thing to confirm before merging:
For context, I also created |
Provide an official Docker Hub distribution for releases so users can pull typos without building from source or relying on stale third-party images. Refs: crate-ci#427 Related: crate-ci#1116, crate-ci#1183
75cb72f to
4b40c36
Compare
Provide an official Docker Hub distribution for releases so users can pull typos without building from source or relying on stale third-party images.
Refs: #427
Related: #1116, #1183