Skip to content

build: compress linux release binaries with upx#770

Draft
skevetter wants to merge 5 commits into
mainfrom
tender-lionfish
Draft

build: compress linux release binaries with upx#770
skevetter wants to merge 5 commits into
mainfrom
tender-lionfish

Conversation

@skevetter

Copy link
Copy Markdown
Contributor

Summary

Shrinks the shipped Linux CLI binary from ~124 MB to ~24 MB (~80% smaller) by compressing it with UPX (--best --lzma), with no feature loss.

Changes

  • .goreleaser.yml — new upx block (compress: best, lzma: true) scoped to goos: linux and the release build ids devsy-linux and devsy-pro-dev. Local dev builds (devsy-dev, devsy) are intentionally excluded so they neither require UPX nor pay the compression cost.
  • .github/workflows/release.yml and .github/workflows/pr-ci.yml — install UPX on the Linux leg only, via the SHA-pinned crazy-max/ghaction-upx@v4.0.0 action with install-only: true (goreleaser still drives the compression). macOS/Windows artifacts are untouched, so notarization is unaffected.

Notes

  • Running task cli:build:dev:pro locally now needs upx on PATH (that id is compressed); plain task cli:build:dev does not.
  • Tradeoff: one-time decompression on startup (tens of ms), acceptable for a CLI.

Add a goreleaser upx step (--best --lzma) scoped to the linux release
build ids (devsy-linux, devsy-pro-dev), shrinking the linux/amd64 binary
from ~124MB to ~24MB. Local dev builds (devsy-dev, devsy) are left
uncompressed so they don't require upx or pay the compression cost.

Install upx on the linux leg of the release and pr-ci workflows via the
sha-pinned crazy-max/ghaction-upx action (install-only).
@netlify

netlify Bot commented Jul 26, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit a5268bb
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6a66fc92f518f00008beed72

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 786a416b-2791-4aa6-b873-22c4e918b1b1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Jul 26, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit a5268bb
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6a66fc92f9e2240008895800

The devsy binary is copied into containers and re-exec'd frequently
(credentials server, git credential helper per git op, agent setup).
--lzma has the slowest decompression, which broke timing-sensitive e2e
specs (credentials server startup, secret injection, ssh socket cleanup,
workspace status). Use UCL (compress: best) instead: ~10x faster
decompression at a smaller size reduction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant