-
Notifications
You must be signed in to change notification settings - Fork 11.7k
feat(ci): add light_binaries release #25137
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
base: main
Are you sure you want to change the base?
Conversation
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
Adds a new “light” release artifact for Sui that packages only a subset of binaries, enabling smaller downloads while keeping the existing full release artifact unchanged.
Changes:
- Introduces a
light_binarieslist inbinary-build-list.jsonto define binaries included in the light package. - Extends the GitHub Actions release workflow to build/download, package, upload, and attach both full and
-light.tgzartifacts.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| binary-build-list.json | Adds a light_binaries section to drive which binaries go into the light release package. |
| .github/workflows/release.yml | Creates a parallel light build directory, produces -light.tgz artifacts, uploads to S3, and attaches to GitHub releases (including backfill behavior when full archives already exist). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Removed light archive handling from the release workflow and use existing full archive to construct light release artifacts. - Create light artifacts only for ubuntu-ghcloud and ubuntu-arm64
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for binary in $(cat ${{ env.BINARY_LIST_FILE }} | jq -r '.light_binaries[]'); do | ||
| export binary=$(echo ${binary} | tr -d $'\r') |
Copilot
AI
Jan 29, 2026
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.
Because the repo is checked out at the target tag (ref: ${{ env.sui_tag }}), older tags won’t contain the new light_binaries key in binary-build-list.json. In that case jq -r '.light_binaries[]' will error and fail the job, which conflicts with the stated goal of generating light archives for already-existing releases. Consider making the jq query tolerant (e.g., defaulting to a minimal list) or sourcing the build list from the workflow revision instead of the tag checkout.
| for binary in $(cat ${{ env.BINARY_LIST_FILE }} | jq -r '.light_binaries[]'); do | |
| export binary=$(echo ${binary} | tr -d $'\r') | |
| LIGHT_BINARIES=$(jq -r 'if has("light_binaries") then .light_binaries[] else "sui" end' "${{ env.BINARY_LIST_FILE }}") | |
| for binary in ${LIGHT_BINARIES}; do | |
| export binary=$(echo "${binary}" | tr -d $'\r') |
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.
it's ok, we don't re-release older releases.
Co-authored-by: Copilot <[email protected]>
Description
Closes: #25136
I've implemented a lightweight release package (option 2. in the issue linked above) for the Sui.
The solution creates an additional light release artifact containing only the essential sui and move-analyzer binaries, significantly reducing the download size for users who don't need all the tools.
Changes Made:
Benefits:
Test plan
Tag a new release.
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.