Skip to content

test(bench): add differential fuzz-perf benchmark harness #368

test(bench): add differential fuzz-perf benchmark harness

test(bench): add differential fuzz-perf benchmark harness #368

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
. -> target
# The website consumes the shared docs theme as a workspace member at
# website/vendor/theme (a gitignored local symlink for dev). Materialize it
# from the published theme at the pinned sha so the root workspace resolves
# and the lockfile validates. The website itself is NOT built in CI — it
# deploys via website/Dockerfile (which clones + builds the theme and
# generates the FA Pro icons); CI only needs the member present to install.
- run: |
git clone https://github.com/rivet-dev/docs-theme.git /tmp/docs-theme
git -C /tmp/docs-theme checkout 450c498555135098c6a927adfdf13458be9be22a
rm -rf website/vendor/theme && mkdir -p website/vendor
cp -r /tmp/docs-theme/packages/theme website/vendor/theme
- run: pnpm install --frozen-lockfile
- run: npx turbo build --filter='!@agentos/website'
- run: pnpm --dir scripts/publish run check-types
- run: pnpm --dir scripts/publish test
- run: bash scripts/check-secure-exec-rust-boundary.test.sh
- run: bash scripts/check-secure-exec-rust-boundary.sh
- run: node --test scripts/check-rust-package-metadata.test.mjs
- run: node scripts/check-rust-package-metadata.mjs
- run: node --test scripts/check-stale-split-names.test.mjs
- run: node scripts/check-stale-split-names.mjs
- run: node --test scripts/check-agentos-client-protocol-compat.test.mjs
- run: node scripts/check-agentos-client-protocol-compat.mjs
- run: node --test scripts/check-secure-exec-package-boundary.test.mjs
- run: node scripts/check-secure-exec-package-boundary.mjs
- run: node --test scripts/check-no-escaping-local-deps.test.mjs
- run: node scripts/check-no-escaping-local-deps.mjs
# Build the Rust crates against the pinned secure-exec. For a preview pin this
# clones secure-exec at the pinned <sha> and switches cargo to local path deps
# (crates.io has no preview track, so an unreleased crate API — e.g. a new
# Extension hook — is only reachable via the clone); no-op for release pins.
# Mirrors the same step in publish.yaml so PR CI matches the build.
- name: Prepare secure-exec crates
run: node scripts/secure-exec-dep.mjs prepare-build
- run: cargo fmt --check
- run: cargo clippy --workspace --all-targets -- -D warnings
- run: cargo test -p agentos-protocol -- --test-threads=1
- run: cargo test -p agentos-sidecar -- --test-threads=1
# NOTE: agentos-sidecar-browser is intentionally excluded from the
# workspace (it depends on secure-exec-sidecar-browser, unpublished on
# crates.io), so it is not tested here. Re-add once that crate publishes.
- run: cargo test -p agentos-client -- --test-threads=1
env:
AGENT_OS_CLIENT_ALLOW_E2E_SKIPS: '1'
- run: pnpm check-types
- run: pnpm lint
continue-on-error: true
- if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
run: pnpm test
env:
AGENTOS_E2E_NETWORK: '1'
SECURE_EXEC_E2E_NETWORK: '1'
- if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository }}
run: pnpm test