Skip to content

feat(docker): add Docker image build and publish workflow#44

Merged
pjcdawkins merged 12 commits intomainfrom
feat-publish-docker-image
Apr 14, 2026
Merged

feat(docker): add Docker image build and publish workflow#44
pjcdawkins merged 12 commits intomainfrom
feat-publish-docker-image

Conversation

@miguelsanchez-upsun
Copy link
Copy Markdown
Collaborator

Summary

  • Adds a Dockerfile that installs the Upsun CLI from a released version using the installer script
  • Adds docker and docker-manifest jobs to the release workflow that build and push a multi-arch image (linux/amd64 + linux/arm64) to ghcr.io/upsun/cli after each release
  • Updates README.md with Docker installation instructions

Test Plan

  • Trigger a release and verify the docker and docker-manifest jobs complete successfully
  • Pull ghcr.io/upsun/cli:<tag> on both amd64 and arm64 and confirm upsun --version returns the correct version
  • Verify ghcr.io/upsun/cli:latest is updated only for non-prerelease tags

🤖 Generated with Claude Code

Antonis Kalipetis and others added 6 commits February 5, 2026 15:36
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>
Copilot AI review requested due to automatic review settings April 14, 2026 15:33
Copy link
Copy Markdown
Contributor

Copilot AI left a 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 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 Dockerfile that installs the Upsun CLI via the project’s installer script.
  • Extend .github/workflows/release.yml with docker + docker-manifest jobs to publish ghcr.io/upsun/cli (amd64/arm64) and update latest for 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.

Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated
Comment thread Dockerfile Outdated
miguelsanchez-upsun and others added 2 commits April 14, 2026 17:59
…rrors

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread Dockerfile Outdated
Comment thread README.md Outdated
@pjcdawkins pjcdawkins merged commit 9262d73 into main Apr 14, 2026
4 checks passed
@pjcdawkins pjcdawkins deleted the feat-publish-docker-image branch April 14, 2026 22:44
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.

3 participants