ci: skip Node.js/UI build for wfctl and lsp-server binary builds#378
Merged
ci: skip Node.js/UI build for wfctl and lsp-server binary builds#378
Conversation
The build matrix in release.yml was running the Node.js setup and UI asset build steps for all binary types (server, wfctl, lsp-server). The UI assets are only required for the server binary since it uses Go embed to serve the admin UI. Add build_ui: true to the server matrix entry and guard the Node.js setup and UI build steps with `if: matrix.build_ui`. The wfctl and lsp-server entries omit the flag (evaluates to falsy) so those steps are skipped, saving unnecessary work on each build. The 10+ minute build times for server and wfctl are due to sequential cross-compilation across 5 target platforms (linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64), each taking ~3 minutes. This is expected behavior; the Go build cache (823 MB) is restored but does not include cross-compiled artifacts for non-native targets. Co-authored-by: intel352 <77607+intel352@users.noreply.github.com> Agent-Logs-Url: https://github.com/GoCodeAlone/workflow/sessions/f3bf4297-d828-4692-8be5-71cc074a95ae
Copilot
AI
changed the title
[WIP] Optimize build matrix by reducing unnecessary steps
ci: skip Node.js/UI build for wfctl and lsp-server binary builds
Mar 25, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the release workflow to avoid unnecessary Node.js setup and UI asset compilation when building non-server binaries, since only the server binary needs the embedded admin UI assets.
Changes:
- Adds a
build_ui: trueflag only to theserverentry in thebuild-binariesmatrix. - Guards the
Set up Node.jsandBuild UI assetssteps withif: matrix.build_uiso they only run forserver.
⏱ Benchmark Results✅ No significant performance regressions detected. benchstat comparison (baseline → PR)
|
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.
The
build-binariesmatrix was running Node.js setup and UI asset compilation for all three binaries (server, wfctl, lsp-server), but UI assets are only needed byserver(Goembedfor the admin UI).Changes
release.yml—build-binariesmatrix: Addedbuild_ui: trueexclusively to theserverentry; guards both theSet up Node.jsandBuild UI assetssteps withif: matrix.build_uiBuild time investigation
The 10+ minute wall-clock times for
serverandwfctlbuilds are due to sequential cross-compilation across 5 platforms (linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64), each taking ~3 min/platform. The Go build cache (823 MB) is restored, but only contains nativelinux/amd64artifacts — cross-compiled targets must be recompiled each run.lsp-serverfinishes in ~2 min because it has a much smaller dependency tree.Other workflows were reviewed:
pre-release.ymlonly buildsserver(no matrix issue); allci.ymljobs that invoke the Node/UI build legitimately depend on the embedded assets.⚡ Quickly spin up Copilot coding agent tasks from anywhere on your macOS or Windows machine with Raycast.