Repository navigation
Fix SDK Explorer demos and storage env guidance (#1555)
#4595
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: Package Smoke Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - v2 | |
| pull_request: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CI: true | |
| GITHUB_TOKEN: '' | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| # All jobs install BOTH Bun and Node 24 because the CLI is intentionally | |
| # runtime-agnostic. Smoke tests that exercise the built `bin/cli.js` | |
| # artifact are matrixed across `[bun, node]` so a regression in either | |
| # runtime trips CI. | |
| jobs: | |
| smoke-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runtime: [bun, node] | |
| name: Package Installation & Usage Test (${{ matrix.runtime }}) | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run package smoke test | |
| env: | |
| CLI_RUNTIME: ${{ matrix.runtime }} | |
| run: bash scripts/test-package-install.sh | |
| postgres-ssl-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 10 | |
| name: Postgres SSL Integration Test | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build packages | |
| run: bun run build | |
| - name: Verify Docker availability | |
| run: docker --version | |
| - name: Run Postgres SSL integration tests | |
| run: bash packages/postgres/test-postgres.sh | |
| installation-type-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 5 | |
| name: Installation Type Detection Test | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Run installation type detection tests | |
| run: bash packages/cli/scripts/test-installation-type.sh | |
| migrate-chain-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 15 | |
| name: Migrate Chain (v1 → v2 → v3) | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build and pack SDK tarballs | |
| run: bash scripts/prepare-sdk-for-testing.sh | |
| - name: Run migrate chain test | |
| env: | |
| MIGRATE_CHAIN_TEST: '1' | |
| run: bun test packages/migrate/test/chain/ | |
| testing-apps-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 10 | |
| name: Testing Apps (local tests) | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build packages | |
| run: bun run build | |
| - name: Run standalone-backend tests | |
| run: cd tests/integration/standalone-backend && bun test | |
| - name: Run oauth tests | |
| run: cd tests/integration/oauth && bun test | |
| - name: Run e2e-web tests | |
| run: cd tests/integration/e2e-web && bun test | |
| - name: Run framework structure tests | |
| run: | | |
| cd tests/frameworks/nextjs-app && bun test | |
| cd ../svelte-web && bun test | |
| queue-cli-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runtime: [bun, node] | |
| name: Queue CLI Tests (${{ matrix.runtime }}) | |
| env: | |
| AGENTUITY_API_URL: https://api.agentuity.com | |
| AGENTUITY_USER_ID: ${{ vars.AGENTUITY_USER_ID }} | |
| AGENTUITY_CLOUD_ORG_ID: ${{ vars.AGENTUITY_CLOUD_ORG_ID }} | |
| AGENTUITY_REGION: usc | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build packages | |
| run: bun run build | |
| - name: Setup test credentials | |
| run: | | |
| # Generate CLI API key for authentication | |
| APIKEY=$(curl "$AGENTUITY_API_URL/cli/auth/short-token" -H 'Content-Type: application/json' --data "{\"secret\":\"${{ secrets.AGENTUITY_APITOKEN_SHARED_SECRET }}\",\"userId\":\"${{ env.AGENTUITY_USER_ID }}\"}" | jq -r '.data.apiKey') | |
| echo "::add-mask::${APIKEY}" | |
| echo "AGENTUITY_CLI_API_KEY=${APIKEY}" >> "$GITHUB_ENV" | |
| - name: Run queue CLI tests | |
| env: | |
| CLI_RUNTIME: ${{ matrix.runtime }} | |
| AGENTUITY_SKIP_BUILD: '1' | |
| run: bash scripts/test-queue.sh | |
| service-client-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 15 | |
| name: Service Client Smoke Tests | |
| env: | |
| AGENTUITY_API_URL: https://api.agentuity.com | |
| AGENTUITY_REGION: usc | |
| # The DB smoke test would normally read these. It's currently | |
| # disabled because project-scoped SDK | |
| # keys can't auth against the DB /resource endpoints. Tracked | |
| # in agentuity/infra#120. Keeping the env wired up so re-enabling | |
| # the test later is a workflow-only change. | |
| AGENTUITY_ORG_ID: ${{ secrets.AGENTUITY_ORG_ID }} | |
| AGENTUITY_DB_DATABASE: testdb | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build packages | |
| run: bun run build | |
| - name: Setup test credentials | |
| run: | | |
| echo "AGENTUITY_SDK_KEY=${{ secrets.INTEGRATION_SUITE_AGENTUITY_SDK_KEY }}" >> "$GITHUB_ENV" | |
| # Each smoke step runs independently with continue-on-error so a | |
| # single service regression doesn't mask the others. The summary | |
| # step at the bottom inspects every outcome and fails the job if | |
| # any step failed, so this is reporting-only, not severity | |
| # downgrading. | |
| - name: Run keyvalue client smoke | |
| id: keyvalue | |
| continue-on-error: true | |
| run: cd tests/services/keyvalue && bun run start | |
| - name: Run vector client smoke | |
| id: vector | |
| continue-on-error: true | |
| run: cd tests/services/vector && bun run start | |
| - name: Run queue client smoke | |
| id: queue | |
| continue-on-error: true | |
| run: cd tests/services/queue && bun run start | |
| - name: Run email client smoke | |
| id: email | |
| continue-on-error: true | |
| run: cd tests/services/email && bun run start | |
| - name: Run schedule client smoke | |
| id: schedule | |
| continue-on-error: true | |
| run: cd tests/services/schedule && bun run start | |
| - name: Run task client smoke | |
| id: task | |
| continue-on-error: true | |
| run: cd tests/services/task && bun run start | |
| - name: Run webhook client smoke | |
| id: webhook | |
| continue-on-error: true | |
| run: cd tests/services/webhook && bun run start | |
| - name: Run sandbox client smoke | |
| id: sandbox | |
| continue-on-error: true | |
| run: cd tests/services/sandbox && bun run start | |
| - name: Service smoke results | |
| env: | |
| KEYVALUE: ${{ steps.keyvalue.outcome }} | |
| VECTOR: ${{ steps.vector.outcome }} | |
| QUEUE: ${{ steps.queue.outcome }} | |
| EMAIL: ${{ steps.email.outcome }} | |
| SCHEDULE: ${{ steps.schedule.outcome }} | |
| TASK: ${{ steps.task.outcome }} | |
| WEBHOOK: ${{ steps.webhook.outcome }} | |
| SANDBOX: ${{ steps.sandbox.outcome }} | |
| run: | | |
| set -eo pipefail | |
| # Print a single aggregated table so a CI viewer sees every | |
| # service's status without scrubbing through nine logs. | |
| echo "┌─────────────┬─────────┐" | |
| printf "│ %-11s │ %-7s │\n" "Service" "Outcome" | |
| echo "├─────────────┼─────────┤" | |
| failed=0 | |
| for svc in KEYVALUE VECTOR QUEUE EMAIL SCHEDULE TASK WEBHOOK SANDBOX; do | |
| outcome=$(eval echo "\$$svc") | |
| printf "│ %-11s │ %-7s │\n" "$svc" "$outcome" | |
| if [ "$outcome" = "failure" ]; then | |
| failed=1 | |
| fi | |
| done | |
| echo "└─────────────┴─────────┘" | |
| if [ "$failed" -ne 0 ]; then | |
| echo "::error::One or more service smoke tests failed (see steps above for details)." | |
| exit 1 | |
| fi | |
| echo "All service smoke tests passed." | |
| framework-demo-test: | |
| runs-on: blacksmith-2vcpu-ubuntu-2404 | |
| timeout-minutes: 30 | |
| name: Framework Demo Tests | |
| env: | |
| AGENTUITY_API_URL: https://api.agentuity.com | |
| AGENTUITY_USER_ID: ${{ vars.AGENTUITY_USER_ID }} | |
| AGENTUITY_CLOUD_ORG_ID: ${{ vars.AGENTUITY_CLOUD_ORG_ID }} | |
| AGENTUITY_REGION: usc | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Node.js | |
| # The agentuity CLI shim (bin/cli.js) has #!/usr/bin/env node | |
| # and refuses to run on Node <24. The runner image ships with | |
| # Node 20, so we have to bump it explicitly. The framework | |
| # demos call the binary via node_modules/.bin/agentuity which | |
| # the workspace install lays down for the test apps. | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 | |
| with: | |
| node-version: '24' | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 | |
| with: | |
| bun-version: "1.3.11" | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Build packages | |
| run: bun run build | |
| - name: Setup test credentials | |
| run: | | |
| APIKEY=$(curl "$AGENTUITY_API_URL/cli/auth/short-token" -H 'Content-Type: application/json' --data "{\"secret\":\"${{ secrets.AGENTUITY_APITOKEN_SHARED_SECRET }}\",\"userId\":\"${{ env.AGENTUITY_USER_ID }}\"}" | jq -r '.data.apiKey') | |
| echo "::add-mask::${APIKEY}" | |
| echo "AGENTUITY_CLI_API_KEY=${APIKEY}" >> "$GITHUB_ENV" | |
| - name: Install Playwright | |
| run: bunx playwright install --with-deps chromium | |
| - name: Run framework demo tests | |
| run: bash scripts/test-framework-demos.sh |