a2c-smcp 0.2.2

A2C-SMCP Rust SDK - Agent, Computer, and Server implementation
Documentation
name: Test

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main, develop]

env:
  CARGO_TERM_COLOR: always

jobs:
  test:
    name: Test Suite
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2

      - name: Check formatting
        run: cargo fmt --all -- --check

      - name: Clippy (workspace)
        run: cargo clippy --workspace --features agent,computer,server -- -D warnings

      - name: Build
        run: cargo build --workspace --features agent,computer,server

      - name: Run tests
        run: cargo test --workspace --features agent,computer,server

  # 单独测试各个 crate 以确保独立可用
  test-crates:
    name: Test Individual Crates
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2

      - name: Test smcp
        run: cargo test -p smcp

      - name: Test smcp-agent
        run: cargo test -p smcp-agent --all-features

      - name: Test smcp-computer
        run: cargo test -p smcp-computer --features vrl,cli

      - name: Test smcp-server-core
        # 限制线程数为 1,避免 Socket.IO 集成测试并行运行时的端口冲突和资源争用
        run: cargo test -p smcp-server-core --all-features -- --test-threads=1

      - name: Test smcp-server-hyper
        run: cargo test -p smcp-server-hyper