Repository navigation
test(bench): add differential fuzz-perf benchmark harness #368
Workflow file for this run
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] | |
| 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 |