feat: add CI checks and release workflows for antd daemon#20
Merged
Conversation
Adds GitHub Actions CI gate (fmt, clippy, doc, test) on PRs touching antd/, and a release workflow that builds cross-platform binaries on v* tag push. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Run cargo fmt across all antd source files - Add #![deny(unsafe_code)] to prevent unsafe regression - Add cargo-audit job for dependency vulnerability scanning - Add antd-rust API contract tests to CI (mock-based, validates daemon API surface) - Trigger CI on antd-rust/** changes too Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Suppress dead_code on generated proto types (tonic include_proto) - Suppress dead_code on bootstrap_peers and is_public fields (kept for future use) - Replace redundant closures with function pointers in chunks.rs - Fix stale file_cost call in antd-rust example (3 args → 2) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jacderida
approved these changes
Apr 8, 2026
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
Adds two GitHub Actions workflows to gate antd daemon changes and automate release builds:
.github/workflows/ci.yml) — quality gate on PRs and pushes tomain.github/workflows/release.yml) — cross-platform binary builds on version tagsCI Workflow —
ci.ymlTriggers: Push to
mainor PR, filtered to paths underantd/**(and the workflow file itself). Language SDK directories (antd-js/,antd-py/, etc.) do not trigger this — those are end-user libraries, not part of the daemon build.Steps (in order):
cargo fmt --check— enforce consistent formattingcargo clippy --locked -- -D warnings— lint with all warnings as errorscargo doc --locked --no-deps— verify rustdoc builds cleanlycargo test --locked— run all antd testsAll steps use
--lockedto enforce thatCargo.lockis in sync withCargo.toml. If a contributor changes dependencies without updating the lock file, CI will fail rather than silently resolving different versions.Protobuf: The antd daemon uses
tonic-buildto compile.protofiles at build time. The workflow installsprotocviaarduino/setup-protoc@v3.ant-core dependency: antd depends on
ant-corevia a git dependency (WithAutonomi/ant-client), pinned byCargo.lock. When someone runscargo update -p ant-core, the resultingCargo.lockchange is itself a file underantd/, so the CI workflow triggers automatically — no special upstream detection needed.Release Workflow —
release.ymlTrigger: Push of a
v*tag (e.g.,v0.2.0).Release process (following the same pattern as ant-ui):
antd/Cargo.tomlmaingit tag v0.3.0 && git push origin v0.3.0Build matrix:
x86_64-unknown-linux-gnuubuntu-latestantd-linux-amd64aarch64-apple-darwinmacos-latestantd-darwin-arm64x86_64-pc-windows-msvcwindows-latestantd-windows-amd64.exeOutput: Creates a GitHub Release with:
SHA256SUMSfile for integrity verificationWhat is NOT covered (intentionally)
antd-js/,antd-py/,antd-go/, etc.) — these are HTTP/gRPC client wrappers built by end-user developers, not part of the daemon releaseffi/) — excluded from first production release scopescripts/test-api.sh) is assumed to be done locally before pushingTest plan
antd/on a PR branch — verify CI workflow triggers and all 4 steps passantd-js/— verify CI does not triggerv*tag — verify release workflow builds all 3 platforms and creates a GitHub Release with binaries + checksums--lockedcatches a deliberately staleCargo.lock(modifyCargo.tomlwithout updating lock)🤖 Generated with Claude Code