feat(docker): add Docker image build and publish workflow#44
Merged
pjcdawkins merged 12 commits intomainfrom Apr 14, 2026
Merged
feat(docker): add Docker image build and publish workflow#44pjcdawkins merged 12 commits intomainfrom
pjcdawkins merged 12 commits intomainfrom
Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Propagate resolved tag from release job to docker/docker-manifest jobs via job outputs, fixing workflow_dispatch tag propagation - Gate latest manifest push on is_prerelease == false to prevent pre-releases from overwriting latest - Replace deprecated docker manifest create/push with docker buildx imagetools create - Remove packages: write from workflow-level permissions to prevent bleed into the release job; add explicit permissions blocks per job - Add contents: read to docker-manifest job permissions - Pin installer.sh fetch URL to released tag instead of main branch Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ring - Extract IMAGE env var to eliminate repeated ghcr.io/upsun/cli literals - Move ARG VERSION after apt layer so version changes don't bust apt cache - Remove self-explanatory comments from Dockerfile Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds first-class Docker distribution for the Upsun CLI by introducing a Dockerfile, extending the release GitHub Actions workflow to publish a multi-arch image to GHCR on release tags, and documenting Docker usage in the README.
Changes:
- Add a
Dockerfilethat installs the Upsun CLI via the project’s installer script. - Extend
.github/workflows/release.ymlwithdocker+docker-manifestjobs to publishghcr.io/upsun/cli(amd64/arm64) and updatelatestfor non-prereleases. - Document running the CLI via Docker in
README.md.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| README.md | Adds Docker usage instructions and notes Docker publishing in the release process section. |
| Dockerfile | Defines the container image build for installing and running the CLI. |
| .github/workflows/release.yml | Adds release pipeline jobs to build/push per-arch images and publish multi-arch manifests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…rrors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pjcdawkins
reviewed
Apr 14, 2026
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pjcdawkins
reviewed
Apr 14, 2026
pjcdawkins
approved these changes
Apr 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dockerfilethat installs the Upsun CLI from a released version using the installer scriptdockeranddocker-manifestjobs to the release workflow that build and push a multi-arch image (linux/amd64+linux/arm64) toghcr.io/upsun/cliafter each releaseREADME.mdwith Docker installation instructionsTest Plan
dockeranddocker-manifestjobs complete successfullyghcr.io/upsun/cli:<tag>on both amd64 and arm64 and confirmupsun --versionreturns the correct versionghcr.io/upsun/cli:latestis updated only for non-prerelease tags🤖 Generated with Claude Code