Skip to content

ci: Rust CI — Test (Unit & Integration) and Build (Release)#33

Merged
dacorvo merged 2 commits into
mainfrom
rust-ci
Jun 25, 2026
Merged

ci: Rust CI — Test (Unit & Integration) and Build (Release)#33
dacorvo merged 2 commits into
mainfrom
rust-ci

Conversation

@dacorvo

@dacorvo dacorvo commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

Adds Rust CI, mirroring the funes workflow organization with more descriptive names.

Workflows

Test - Unit & Integration (test.yml) — hermetic, two jobs (funes ci.yml shape):

  • Lint & Unit Tests: cargo fmt --checkcargo clippy --all-targets -- -D warningscargo test --lib.
  • Integration Tests: cargo test --test proxy — the loopback capture-proxy test (mock upstream over 127.0.0.1).

No protoc / mold / network / podman: agentcap (unlike funes) links no protobuf, and every test here is self-contained.

Build - Release (release.yml) — funes release.yml shape: compute (conventional-commit version bump on workflow_dispatch) → build-linux (x86_64) + build-macos (arm64) → publish. PRs and main build to validate the release path; a tag or dispatch publishes a GitHub release with the binaries.

On "live" vs "integration"

agentcap's heavyweight live tests — build per-agent sandbox images, spawn llama.cpp in podman, drive real agent CLIs — stay in the existing Python linux-live-tests.yml for now. There are no automated Rust live tests yet (the run path was verified by hand across pi/hermes/opencode/goose), so this Rust workflow is deliberately scoped to unit + the hermetic loopback integration test. The Python linux-non-live-tests.yml / linux-live-tests.yml keep running until the cutover that removes the Python client.

Validated locally

cargo fmt --check, cargo clippy --all-targets -- -D warnings, cargo test --lib (71), cargo test --test proxy (1), and cargo build --release all green; both workflow YAMLs parse.

🤖 Generated with Claude Code

dacorvo and others added 2 commits June 25, 2026 08:01
…lows

Mirror the funes workflow organization, adapted to agentcap:

- Test - Unit & Integration (test.yml): two jobs — Lint & Unit Tests
  (fmt --check, clippy -D warnings, cargo test --lib) and Integration Tests
  (cargo test --test proxy, the loopback capture-proxy test). Hermetic; no
  protoc/mold/network needed (agentcap, unlike funes, links no protobuf).
- Build - Release (release.yml): compute (conventional-commit version bump on
  workflow_dispatch) → build-linux (x86_64) + build-macos (arm64) → publish.
  PRs/main build to validate; tag/dispatch publish a GitHub release.

The agent×model end-to-end ("live") tests stay in the existing Python
linux-live-tests.yml until cutover — there are no automated Rust live tests yet.
Both Rust workflows are green locally (fmt/clippy/test + release build).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CI pins Rust 1.95.0, whose clippy flags `unnecessary_sort_by` on the parquet
request enumeration; switch that `sort_by` to `sort_by_key`. Add a
rust-toolchain.toml pinning 1.95.0 so local `cargo fmt/clippy/test` matches CI
and this drift can't recur.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dacorvo dacorvo merged commit d216daa into main Jun 25, 2026
8 checks passed
@dacorvo dacorvo deleted the rust-ci branch June 26, 2026 08:11
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