Skip to content

⬆ Bump lru from 0.18.1 to 0.18.2 #2134

⬆ Bump lru from 0.18.1 to 0.18.2

⬆ Bump lru from 0.18.1 to 0.18.2 #2134

name: Integration tests
permissions:
contents: read
# End-to-end integration test suite (macOS leg). Runs the `aa-integration-tests`
# crate on macOS so the topology HTTP roundtrip (AAASM-1066) and the CLI
# subcommand coverage (AAASM-1258, AAASM-1441 follow-up) are exercised on a
# non-Linux platform before anything depending on them ships.
#
# AAASM-2631: the Linux leg was dropped — ci.yml's `test` job already runs the
# whole workspace (incl. aa-integration-tests) on ubuntu-latest for every rust
# PR, so running it serially here too was pure duplication. The tests bind
# ephemeral ports (TcpListener::bind 127.0.0.1:0) and pass concurrently in
# `test`, so the Linux coverage is fully retained there.
#
# Node.js SDK E2E fixtures (AAASM-1514 / F116 ST-B): TypeScript fixture scripts
# are installed via pnpm and run in AA_SELFTEST=1 mode inside the Rust harness;
# no running gateway or native bindings are required for the hermetic tests.
on:
push:
branches: [main]
paths:
- "aa-integration-tests/**"
- "aa-api/**"
- "aa-gateway/**"
- "aa-cli/**"
- "aa-runtime/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/integration-tests.yml"
pull_request:
branches: [main]
paths:
- "aa-integration-tests/**"
- "aa-api/**"
- "aa-gateway/**"
- "aa-cli/**"
- "aa-runtime/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/integration-tests.yml"
jobs:
integration-tests:
name: Integration tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os: [macos-latest]
steps:
- name: Checkout agent-assembly
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Checkout sibling python-sdk
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ai-agent-assembly/python-sdk
path: python-sdk
- name: Checkout sibling go-sdk
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ai-agent-assembly/go-sdk
path: go-sdk
- name: Checkout sibling node-sdk
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ai-agent-assembly/node-sdk
path: node-sdk
- name: Install protobuf compiler
run: brew install protobuf
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.11"
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: "1.26"
cache-dependency-path: aa-integration-tests/tests/fixtures/e2e/sdk_go_driver/go.sum
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
with:
key: integration-tests-${{ matrix.os }}
- name: Install cargo-nextest
uses: taiki-e/install-action@83c419a40a2e48673b2c523337e57f602dfe53c9 # cargo-nextest
- name: Set up pnpm
uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
with:
version: 10
- name: Set up Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: "24"
cache: "pnpm"
cache-dependency-path: aa-integration-tests/tests/fixtures/agents/typescript/pnpm-lock.yaml
- name: "Symlink node-sdk for file: dependency resolution"
# The TypeScript fixture package.json uses file:../../../../../../node-sdk
# which resolves six levels up from the typescript/ dir to the parent of
# GITHUB_WORKSPACE. The checkout action places node-sdk one level below
# GITHUB_WORKSPACE so we create a sibling symlink to bridge the gap.
run: ln -sfn "$GITHUB_WORKSPACE/node-sdk" "$(dirname "$GITHUB_WORKSPACE")/node-sdk"
- name: Install TypeScript fixture dependencies
working-directory: aa-integration-tests/tests/fixtures/agents/typescript
run: pnpm install --frozen-lockfile
- name: Pre-build aasm binary (AAASM-2340)
# Compiling aa-cli (which pulls wasmtime via aa-sandbox) once serially
# before nextest skips per-test `cargo run -p aa-cli` overhead — under
# --test-threads=1 every test paid that overhead in sequence, which is
# what pushed this workflow past the 20-minute timeout-minutes ceiling.
run: cargo build --quiet -p aa-cli --bin aasm
- name: Run integration tests
env:
PYTHON_SDK_PATH: ${{ github.workspace }}/python-sdk
GO_SDK_PATH: ${{ github.workspace }}/go-sdk
# AAASM-2340: spawn the binary pre-built in the previous step
# instead of paying cargo-run overhead per test under --test-threads=1.
AASM_BIN_PATH: ${{ github.workspace }}/target/debug/aasm
run: cargo nextest run -p aa-integration-tests --test-threads=1
- name: Upload gateway logs on failure
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: integration-tests-gateway-logs-${{ matrix.os }}
path: |
target/nextest/**/*.log
target/debug/build/aa-integration-tests-*/output
**/*.log
if-no-files-found: ignore
retention-days: 7
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}