Merge pull request #25 from A3S-Lab/fix/srt-workspace-scan-race-20260723 #106
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
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| check: | |
| name: Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup workspace context | |
| run: bash .github/setup-workspace.sh | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install protobuf compiler | |
| run: sudo apt-get update && sudo apt-get install -y protobuf-compiler | |
| - name: Format check | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| run: cargo clippy --workspace --lib --bins -- -D warnings | |
| - name: Check public API compatibility with v5.3.5 | |
| run: | | |
| cargo install cargo-semver-checks --version 0.48.0 --locked | |
| bash scripts/check_semver.sh 5.3.5 | |
| - name: Default tests | |
| run: cargo test --workspace | |
| - name: Feature-gated library tests | |
| run: cargo test --workspace --all-features --lib | |
| - name: Agent convergence benchmark | |
| run: cargo run -p a3s-code-core --example agent_convergence_benchmark | |
| sdk-check: | |
| name: SDK build check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup workspace context | |
| run: bash .github/setup-workspace.sh | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install protobuf compiler | |
| run: sudo apt-get update && sudo apt-get install -y protobuf-compiler | |
| # The Node and Python SDKs are excluded from the core workspace and are | |
| # otherwise only compiled at release time (napi / maturin). Type-check them | |
| # here so a core change that breaks an SDK (e.g. a new struct field that an | |
| # SDK constructs with a literal) fails on the PR instead of the release. | |
| - name: Check SDK protocol and API alignment | |
| run: | | |
| node scripts/generate_event_protocol_artifacts.mjs --check | |
| node scripts/sdk_api_alignment_check.mjs | |
| - name: Check Node SDK | |
| run: cargo check --manifest-path sdk/node/Cargo.toml | |
| - name: Check Python SDK | |
| run: cargo check --manifest-path sdk/python/Cargo.toml | |
| windows-check: | |
| name: Windows check | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup workspace context | |
| shell: bash | |
| run: bash .github/setup-workspace.sh | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Clippy | |
| run: cargo clippy --workspace --lib --bins -- -D warnings | |
| - name: Library tests | |
| run: cargo test --workspace --lib |