fix(cli): clean Next standalone package and nested workingDirectory #4813
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: 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 polyglot `bin/cli.js` | |
| # entrypoint 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 | |
| # Framework demos invoke the CLI via node_modules/.bin/agentuity. | |
| # The polyglot entrypoint picks node when bun is absent; Node 24+ is required. | |
| 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 |