Skip to content

feat(polyfill): Support v2 MCP-over-ACP bridge #818

feat(polyfill): Support v2 MCP-over-ACP bridge

feat(polyfill): Support v2 MCP-over-ACP bridge #818

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "ci-${{ github.ref }}"
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
msrv:
name: Minimum supported Rust version
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Read MSRV from Cargo.toml
id: msrv
run: |
msrv="$(sed -n 's/^rust-version[[:space:]]*=[[:space:]]*"\([^"]*\)".*/\1/p' Cargo.toml)"
test -n "$msrv"
echo "version=$msrv" >> "$GITHUB_OUTPUT"
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659
with:
toolchain: ${{ steps.msrv.outputs.version }}
target: wasm32-wasip1,wasm32-wasip2
- name: Check with MSRV
run: |
cargo check --workspace --all-targets --all-features --locked
cargo check -p agent-client-protocol --lib --target wasm32-wasip1 --no-default-features --locked
cargo check -p agent-client-protocol --lib --target wasm32-wasip1 --all-features --locked
cargo check -p agent-client-protocol --lib --target wasm32-wasip2 --no-default-features --locked
cargo check -p agent-client-protocol --lib --target wasm32-wasip2 --all-features --locked
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659
with:
toolchain: nightly,stable
components: rustfmt,clippy
target: wasm32-wasip1,wasm32-wasip2
- name: Check formatting
run: cargo fmt -- --check
- name: Check for typos
uses: crate-ci/typos@bee27e3a4fd1ea2111cf90ab89cd076c870fce14
with:
config: ./typos.toml
- name: Lint
run: |
cargo clippy
cargo clippy --all-targets --all-features
cargo clippy -p agent-client-protocol --lib --target wasm32-wasip1 --all-features -- -D warnings
cargo clippy -p agent-client-protocol --lib --target wasm32-wasip2 --all-features -- -D warnings
- name: Build
run: cargo build --all-targets --all-features
- name: Check docs.rs build
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings
run: cargo +nightly doc -p agent-client-protocol --all-features --no-deps --locked
- name: Check WASI documentation
env:
RUSTDOCFLAGS: -D warnings
run: cargo +stable doc -p agent-client-protocol --lib --target wasm32-wasip2 --all-features --no-deps --locked
- name: Install just
uses: taiki-e/install-action@41049aa56687c35e0afa74eed4f09cec4f9afabf
with:
tool: just
- name: Run tests
run: just test
feature-powerset:
name: Feature powerset (${{ matrix.partition }})
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
partition:
- "1/8"
- "2/8"
- "3/8"
- "4/8"
- "5/8"
- "6/8"
- "7/8"
- "8/8"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659
with:
toolchain: stable
- name: Install cargo-hack
uses: taiki-e/install-action@41049aa56687c35e0afa74eed4f09cec4f9afabf
with:
tool: cargo-hack
- name: Check feature powerset
# `default` is empty and `unstable` is an aggregate alias for the
# individual unstable_* features, so excluding both avoids checking
# duplicate combinations. Depth 2 covers every individual feature and
# pair, while the regular CI all-features build covers their full union
# without making this matrix grow exponentially.
run: cargo hack check --workspace --feature-powerset --depth 2 --exclude-features default,unstable --no-dev-deps --partition ${{ matrix.partition }}