ci: parallel builds + pre-built sidecar binaries#8
Merged
Conversation
Replace sequential Windows build and from-source sidecar compilation with parallel builds and pre-built binaries from ant-client releases. - Create draft release in its own job so all 4 platform builds run in parallel (Windows no longer waits for Linux/macOS) - Download pre-built ant binary from ant-client GitHub releases instead of cloning and compiling ant-client from source (~10s vs ~10min) - Add .ant-version file to pin the ant-client release tag (defaults to "latest"); can be overridden via workflow_dispatch input for testing pre-release node versions - Add resolve-ant-version job to handle version resolution Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jacderida
approved these changes
Apr 8, 2026
Nic-dorman
added a commit
that referenced
this pull request
Apr 15, 2026
Notable changes since v0.5.0: - Disable public upload option in the UI until external-signer backend support lands (#12) - Bump evmlib from 0.4 to 0.8 (#11) - Add Vitest test suite + PR CI checks (typecheck, vitest, cargo fmt/clippy) (#8, #9) - Parallel CI builds with pre-built sidecar binaries (#8) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Optimise the release workflow to cut build times from ~50 minutes to ~19 minutes by addressing two bottlenecks:
git clone+cargo build --release) ~10min/platformBefore: sequential pipeline
After: parallel pipeline
What changed
1. Parallel Windows build
Windows previously had
needs: [build-linux-macos]becausetauri-actioncreated the draft release as a side effect, and Windows needed the release to exist forgh release upload.Fix: a new lightweight
create-releasejob creates the draft release first (via GitHub API), then passes therelease_idtotauri-actionvia itsreleaseIdinput. All 4 platform builds now depend only oncreate-releaseand run in parallel.2. Pre-built sidecar binaries
The sidecar step previously cloned
WithAutonomi/ant-clientand rancargo build --release -p ant-cli(~10 min per platform). But ant-client already publishes pre-built binaries for all targets in its GitHub releases.Now the workflow downloads the matching archive from ant-client releases (~10 seconds), extracts the
antbinary, and places it insrc-tauri/binaries/for Tauri to bundle.Target mapping:
aarch64-apple-darwinaarch64-apple-darwinx86_64-apple-darwinx86_64-apple-darwinx86_64-unknown-linux-gnux86_64-unknown-linux-muslx86_64-pc-windows-msvcx86_64-pc-windows-msvcNote: Linux uses the musl build (statically linked, works on glibc systems).
3. Configurable ant version (
.ant-version)A new
.ant-versionfile controls which ant-client release to bundle. This allows pinning to a specific version for testing new node features ahead of a formal release.Resolution priority:
workflow_dispatchinputant_version(for one-off test builds from the Actions tab).ant-versionfile in the repo (version-controlled, visible in PRs)latestif neither is setExamples:
Test plan
latest.jsonhas all platform entries afterupdate-latest-jsoncompletesworkflow_dispatchwith a specificant_versioninput.ant-versionfile with a pinned tag works correctly🤖 Generated with Claude Code