Skip to content

Validate Rust release matrix across Linux and macOS - #4

Merged
proerror77 merged 5 commits into
mainfrom
ci/rust-build-matrix-20260428061102
Apr 27, 2026
Merged

Validate Rust release matrix across Linux and macOS#4
proerror77 merged 5 commits into
mainfrom
ci/rust-build-matrix-20260428061102

Conversation

@proerror77

Copy link
Copy Markdown
Owner

Summary

  • add a release binary matrix for Linux GNU, Linux musl, macOS arm64, and macOS x64
  • enable sccache/cache dimensions and fast linker setup for Rust CI/release paths
  • fix release-only compile/package failures exposed by the matrix

Verification

Notes

  • Publish GitHub Release is skipped for workflow_dispatch branch runs, expected because this was not a tag build.
  • Docker daemon was unavailable locally, so Docker buildx was not verified in this pass.

proerror added 5 commits April 28, 2026 06:11
Separate fast CI builds from release matrix validation so musl and macOS artifacts are produced from locked dependencies with reproducible metadata.

Constraint: GitHub Actions only sees committed workflow files on a pushed ref

Rejected: Trigger local-only validation | would not exercise hosted runner matrix or musl release path

Confidence: medium

Scope-risk: moderate

Tested: YAML parse and local cargo check -p rust-hft-workspace --locked before branch push

Not-tested: Hosted GitHub Actions matrix before this commit
The release matrix resolves tokio-tungstenite 0.26, whose Message payloads use Bytes/Utf8Bytes and whose WebSocketConfig is non-exhaustive. Updating the adapter lets the build matrix exercise release packaging instead of failing at API drift.

Constraint: Current lockfile resolves tungstenite 0.26 through workspace dependencies

Rejected: Pin older tungstenite API | would hide dependency drift instead of validating current lockfile

Confidence: medium

Scope-risk: narrow

Tested: cargo check -p hft-integration --locked

Not-tested: Full hosted release matrix before rerun
The release matrix builds default live features, which include Bitget data and execution adapters. simd-json 0.14 no longer exports ValueAsContainer, and tungstenite 0.26 uses Utf8Bytes plus request traits that do not accept Url directly in this path.

Constraint: Release workflow builds with Cargo.lock and default hft-live features

Rejected: Drop Bitget from release packages | would avoid validating the production default adapter

Confidence: medium

Scope-risk: narrow

Tested: cargo check -p hft-data-adapter-bitget --features json-simd --locked

Tested: cargo check -p hft-execution-adapter-bitget --locked

Not-tested: Full hosted release matrix before rerun
The release matrix exposed that the current clickhouse crate returns inserters asynchronously, so replay must await insert creation before writing rows.

Constraint: GitHub release matrix failed on all active release targets at hft-replay.

Confidence: high

Scope-risk: narrow

Tested: cargo check -p hft-replay --locked
The release matrix reached package creation after successful app builds, but the package step copied README.md from rust_hft where no root README exists. Use the existing Rust docs README for release bundles.

Constraint: Release workflow runs package steps with working-directory rust_hft.

Confidence: high

Scope-risk: narrow

Tested: ruby YAML parse for release workflows

Tested: git diff --check
@coderabbitai

coderabbitai Bot commented Apr 27, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@proerror77 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 29 minutes and 15 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: eb83d592-c4bc-4898-8e12-211a81183cd7

📥 Commits

Reviewing files that changed from the base of the PR and between 488b039 and 26ac406.

⛔ Files ignored due to path filters (1)
  • rust_hft/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (16)
  • .github/workflows/ci.yml
  • .github/workflows/release-rust.yml
  • .gitignore
  • rust_hft/.cargo/config.toml
  • rust_hft/.github/workflows/ci.yml
  • rust_hft/.github/workflows/feature-matrix.yml
  • rust_hft/.github/workflows/release.yml
  • rust_hft/.github/workflows/release.yml.disabled
  • rust_hft/Cargo.toml
  • rust_hft/apps/replay/src/main.rs
  • rust_hft/data-pipelines/adapters/adapter-bitget/src/zero_copy_stream.rs
  • rust_hft/deployment/docker/Dockerfile.trading
  • rust_hft/docker/Dockerfile
  • rust_hft/docs/guides/RUST_BUILD_RELEASE.md
  • rust_hft/execution-gateway/adapters/adapter-bitget/src/lib.rs
  • rust_hft/market-core/integration/src/ws.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/rust-build-matrix-20260428061102

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 and usage tips.

@proerror77
proerror77 merged commit 5105a80 into main Apr 27, 2026
7 checks passed
@proerror77
proerror77 deleted the ci/rust-build-matrix-20260428061102 branch April 27, 2026 23:19
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.

1 participant