Skip to content

fix(cli): clean Next standalone package and nested workingDirectory #4813

fix(cli): clean Next standalone package and nested workingDirectory

fix(cli): clean Next standalone package and nested workingDirectory #4813

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