Files
WeHub Mirror abf0e694a2
Hetzner Agent E2E / Provision + deploy + healthcheck (push) Has been cancelled
Hetzner Agent E2E / Teardown (push) Has been cancelled
Scenario PR E2E / Classify changed paths (push) Has been cancelled
Scenario PR E2E / Zero-Key unit + UI coverage (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser core (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser view lifecycle (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser all-pages (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser feature interactions (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser cloud keyless (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser ratcheted (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser auto-discovered specs (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser dashboard device matrix (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser Pixel-7 real-touch lane (push) Has been cancelled
Scenario PR E2E / Zero-Key app browser WebKit lane (push) Has been cancelled
Scenario PR E2E / Zero-Key accounts UI e2e (real API + pool + disk) (push) Has been cancelled
Scenario PR E2E / Zero-Key full-walkthrough (mock lane) (push) Has been cancelled
Scenario PR E2E / Zero-Key app diagnostics (push) Has been cancelled
Scenario PR E2E / Zero-Key scenario runner E2E (push) Has been cancelled
Scenario PR E2E / Zero-Key Deterministic E2E (push) Has been cancelled
Docker CI Smoke / Classify changed paths (push) Has been cancelled
Docker CI Smoke / Build production Docker image (+ smoke boot) (push) Has been cancelled
Build libelizainference (Android, FFI) / prepare-matrix (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Orchestrator multi-account / multi-account selection e2e (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Tests / Classify changed paths (push) Has been cancelled
UI Extended Fixture E2E / fixture-e2e (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
CUDA Coverage Continuity / Fail-closed manifest contracts (push) Has been cancelled
CUDA Coverage Continuity / Exact-head CUDA fixtures + runtime graph (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Homepage / build-and-deploy (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
Tests / Remote Capability Provider Live E2E (push) Has been cancelled
Training Stack / CPU smoke (lint + import) (push) Has been cancelled
Training Stack / GPU build (QJL nvcc + Triton JIT) (push) Has been cancelled
UI Core Fixture E2E / ui-core-fixture-e2e (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/core typecheck bun run --cwd packages/shared typecheck bun run --cwd packages/cloud/shared typecheck bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-coding-tools build node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=1 node packages/scripts/run-python.mjs --version node packages… (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Tests / Test-runner vacuous-green guard (push) Has been cancelled
Tests / Server Tests (push) Has been cancelled
Tests / Client Tests (push) Has been cancelled
Tests / Plugin Tests (1/4) (push) Has been cancelled
Tests / Plugin Tests (2/4) (push) Has been cancelled
Tests / Plugin Tests (3/4) (push) Has been cancelled
Tests / Plugin Tests (4/4) (push) Has been cancelled
Tests / Plugin Tests (push) Has been cancelled
Tests / Integration Lane (personal-assistant) (push) Has been cancelled
Tests / Electrobun Desktop Contract (push) Has been cancelled
Tests / Zero-Key unit + UI coverage (push) Has been cancelled
Tests / Zero-Key app browser (push) Has been cancelled
Tests / Zero-Key diagnostics (push) Has been cancelled
Tests / Zero-Key scenario runner (push) Has been cancelled
Tests / Zero-Key harness E2E (push) Has been cancelled
Tests / Zero-Key Deterministic E2E (push) Has been cancelled
Build libelizainference (Android, FFI) / ${{ matrix.abi }} (push) Has been cancelled
Tests / Cloud Live E2E (Eliza Cloud) (push) Has been cancelled
Tests / Remote Capability GitHub Live Artifact Validator (push) Has been cancelled
Tests / Script Tests (Linux) (push) Has been cancelled
Tests / Merge Queue Quality Gate (push) Has been cancelled
Tests / ci-ok (push) Has been cancelled
WeHub snapshot of 9298cb46af86e1bd3a40a60e135ea855d70f229a
2026-08-07 16:49:07 +08:00

208 lines
5.9 KiB
Bash
Executable File

#!/bin/bash
# Integration tests runner
# Usage:
# ./scripts/run-integration-tests.sh # PGLite only
# ./scripts/run-integration-tests.sh --postgres # Include real PostgreSQL tests (auto-start Docker)
# POSTGRES_URL=... ./scripts/run-integration-tests.sh # Use existing PostgreSQL (CI mode)
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PACKAGE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
COMPOSE_FILE="$PACKAGE_DIR/docker-compose.test.yml"
USE_POSTGRES=false
POSTGRES_STARTED=false
# Auto-enable PostgreSQL tests if POSTGRES_URL is already set (CI mode)
if [ -n "$POSTGRES_URL" ]; then
USE_POSTGRES=true
fi
# Parse arguments
for arg in "$@"; do
case $arg in
--postgres)
USE_POSTGRES=true
shift
;;
esac
done
cleanup() {
if [ "$POSTGRES_STARTED" = true ]; then
echo "🧹 Stopping PostgreSQL..."
docker compose -f "$COMPOSE_FILE" down -v 2>/dev/null || true
fi
}
trap cleanup EXIT
start_postgres() {
# Skip if POSTGRES_URL already set (CI provides PostgreSQL)
if [ -n "$POSTGRES_URL" ]; then
echo "✅ Using existing PostgreSQL: $POSTGRES_URL"
return 0
fi
echo "🐘 Starting PostgreSQL via Docker..."
docker compose -f "$COMPOSE_FILE" up -d
echo "⏳ Waiting for PostgreSQL to be ready..."
for i in {1..30}; do
if docker exec plugin-sql-test-postgres pg_isready -U postgres > /dev/null 2>&1; then
echo "✅ PostgreSQL is ready"
POSTGRES_STARTED=true
export POSTGRES_URL="postgresql://eliza_test:test123@localhost:5432/eliza_test"
return 0
fi
echo -n "."
sleep 1
done
echo ""
echo "❌ PostgreSQL failed to start"
return 1
}
# Define test groups (PGLite)
BATCH1=(
"src/__tests__/integration/memory.test.ts"
"src/__tests__/integration/cache.test.ts"
"src/__tests__/integration/embedding.test.ts"
)
BATCH2=(
"src/__tests__/integration/agent.test.ts"
"src/__tests__/integration/entity.test.ts"
"src/__tests__/integration/entity-crud.test.ts"
)
BATCH3=(
"src/__tests__/integration/component.test.ts"
"src/__tests__/integration/relationship.test.ts"
"src/__tests__/integration/room.test.ts"
)
BATCH4=(
"src/__tests__/integration/world.test.ts"
"src/__tests__/integration/log.test.ts"
"src/__tests__/integration/messaging.test.ts"
)
BATCH5=(
"src/__tests__/integration/base-comprehensive.test.ts"
"src/__tests__/integration/base-adapter-methods.test.ts"
"src/__tests__/integration/cascade-delete.test.ts"
)
BATCH6=(
"src/__tests__/integration/entity-methods.test.ts"
"src/__tests__/integration/participant.test.ts"
"src/__tests__/integration/task.test.ts"
)
BATCH7=(
"src/__tests__/integration/utils.test.ts"
"src/__tests__/integration/schema-factory.test.ts"
)
# PostgreSQL-specific tests
BATCH_POSTGRES=(
"src/__tests__/integration/postgres/pglite-adapter.test.ts"
"src/__tests__/integration/postgres/postgres-init.test.ts"
"src/__tests__/integration/postgres/pg-adapter-integration.test.ts"
)
BATCH_RLS=(
"src/__tests__/integration/postgres/rls-entity.test.ts"
"src/__tests__/integration/postgres/rls-server.test.ts"
"src/__tests__/integration/postgres/rls-logs.test.ts"
"src/__tests__/integration/postgres/rls-message-server-agents.test.ts"
)
run_batch() {
local batch_name=$1
shift
local tests=("$@")
echo ""
echo "📦 Running: $batch_name"
if ! npx vitest run "${tests[@]}" --timeout=120000 --bail=1; then
echo "❌ $batch_name failed"
return 1
fi
echo "✅ $batch_name passed"
sleep 1
}
# Run tests sequentially (one file at a time) - needed for RLS tests
# where rls-entity.test.ts must complete before others run
run_sequential() {
local batch_name=$1
shift
local tests=("$@")
echo ""
echo "📦 Running: $batch_name (sequential)"
for test_file in "${tests[@]}"; do
echo " → $(basename "$test_file")"
if ! npx vitest run "$test_file" --timeout=120000; then
echo "❌ $batch_name failed at $test_file"
return 1
fi
done
echo "✅ $batch_name passed"
sleep 1
}
echo "🧪 Running plugin-sql integration tests"
if [ "$USE_POSTGRES" = true ]; then
echo " Mode: PGLite + PostgreSQL"
else
echo " Mode: PGLite only"
fi
echo ""
OVERALL_SUCCESS=true
# Core tests (PGLite)
run_batch "Core Tests" "${BATCH1[@]}" || OVERALL_SUCCESS=false
run_batch "Entity Tests" "${BATCH2[@]}" || OVERALL_SUCCESS=false
run_batch "Component Tests" "${BATCH3[@]}" || OVERALL_SUCCESS=false
run_batch "Infrastructure Tests" "${BATCH4[@]}" || OVERALL_SUCCESS=false
run_batch "Integration Tests" "${BATCH5[@]}" || OVERALL_SUCCESS=false
run_batch "Method Tests" "${BATCH6[@]}" || OVERALL_SUCCESS=false
run_batch "Utility Tests" "${BATCH7[@]}" || OVERALL_SUCCESS=false
# PostgreSQL tests (if requested or POSTGRES_URL set)
if [ "$USE_POSTGRES" = true ]; then
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🐘 PostgreSQL Tests"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if start_postgres; then
run_batch "PostgreSQL Adapter Tests" "${BATCH_POSTGRES[@]}" || OVERALL_SUCCESS=false
# RLS tests must run sequentially - rls-entity.test.ts creates schema and installs RLS
# that other RLS tests depend on
run_sequential "RLS Tests" "${BATCH_RLS[@]}" || OVERALL_SUCCESS=false
else
OVERALL_SUCCESS=false
fi
fi
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if [ "$OVERALL_SUCCESS" = true ]; then
echo "🎉 All tests passed!"
exit 0
else
echo "💥 Some tests failed"
exit 1
fi