From c76a9adaea68bde8a0f23e062221bd58a35af789 Mon Sep 17 00:00:00 2001 From: Wells Bunker Date: Wed, 24 Sep 2025 10:11:52 -0600 Subject: [PATCH] test --- .github/workflows/build-lint-unit.yml | 95 +++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-lint-unit.yml b/.github/workflows/build-lint-unit.yml index 9902faf66..61c3948b1 100644 --- a/.github/workflows/build-lint-unit.yml +++ b/.github/workflows/build-lint-unit.yml @@ -14,7 +14,7 @@ env: jobs: # Build job - runs in parallel build: - name: Build + name: all-ci-in-one runs-on: blacksmith-8vcpu-ubuntu-2404 timeout-minutes: 10 environment: testing @@ -27,6 +27,11 @@ jobs: with: cache-key: build-lint-unit + - name: Lint all packages + run: pnpm turbo lint + env: + TURBO_TELEMETRY_DISABLED: 1 + - name: Build all packages run: pnpm turbo build env: @@ -62,27 +67,90 @@ jobs: wait echo "✅ Docker images pre-pulled successfully" + - name: Start services + run: | + echo "🚀 Starting all services (includes Supabase)..." + # Turbo start will use cached builds from .turbo + pnpm turbo start > turbo.log 2>&1 & + echo $! > turbo.pid + echo "Started turbo with PID $(cat turbo.pid)" + + # Give services a moment to start and show initial logs + sleep 10 + echo "=== Initial turbo start output ===" + head -50 turbo.log || true + env: + SKIP_ENV_CHECK: true + TURBO_TELEMETRY_DISABLED: 1 + # Pass all secrets from the testing environment + MOMENTIC_API_KEY: ${{ secrets.MOMENTIC_API_KEY }} + DATABASE_URL: ${{ secrets.DATABASE_URL }} + SUPABASE_URL: ${{ secrets.SUPABASE_URL }} + SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }} + SUPABASE_ANON_KEY: ${{ secrets.SUPABASE_ANON_KEY }} + SUPABASE_PUBLIC_URL: ${{ secrets.SUPABASE_PUBLIC_URL }} + VITE_PUBLIC_API_URL: ${{ secrets.VITE_PUBLIC_API_URL }} + VITE_PUBLIC_API2_URL: ${{ secrets.VITE_PUBLIC_API2_URL }} + VITE_PUBLIC_WEB_SOCKET_URL: ${{ secrets.VITE_PUBLIC_WEB_SOCKET_URL }} + VITE_PUBLIC_URL: ${{ secrets.VITE_PUBLIC_URL }} + VITE_PUBLIC_SUPABASE_URL: ${{ secrets.VITE_PUBLIC_SUPABASE_URL }} + VITE_PUBLIC_SUPABASE_ANON_KEY: ${{ secrets.VITE_PUBLIC_SUPABASE_ANON_KEY }} + VITE_PUBLIC_WS_URL: ${{ secrets.VITE_PUBLIC_WS_URL }} + VITE_PUBLIC_POSTHOG_KEY: ${{ secrets.VITE_PUBLIC_POSTHOG_KEY }} + VITE_PUBLIC_POSTHOG_HOST: ${{ secrets.VITE_PUBLIC_POSTHOG_HOST }} + VITE_SLACK_APP_SUPPORT_URL: ${{ secrets.VITE_SLACK_APP_SUPPORT_URL }} + VITE_PRIVATE_SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.VITE_PRIVATE_SUPABASE_SERVICE_ROLE_KEY }} + SERVER_PORT: ${{ secrets.SERVER_PORT }} + ELECTRIC_PROXY_URL: ${{ secrets.ELECTRIC_PROXY_URL }} + ELECTRIC_PORT: ${{ secrets.ELECTRIC_PORT }} + ELECTRIC_INSECURE: ${{ secrets.ELECTRIC_INSECURE }} + ELECTRIC_SECRET: ${{ secrets.ELECTRIC_SECRET }} + ELECTRIC_SOURCE_ID: ${{ secrets.ELECTRIC_SOURCE_ID }} + RERANK_API_KEY: ${{ secrets.RERANK_API_KEY }} + RERANK_MODEL: ${{ secrets.RERANK_MODEL }} + RERANK_BASE_URL: ${{ secrets.RERANK_BASE_URL }} + LLM_API_KEY: ${{ secrets.LLM_API_KEY }} + LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + TURBOPUFFER_API_KEY: ${{ secrets.TURBOPUFFER_API_KEY }} + TURBOPUFFER_REGION: ${{ secrets.TURBOPUFFER_REGION }} + POSTHOG_TELEMETRY_KEY: ${{ secrets.POSTHOG_TELEMETRY_KEY }} + BRAINTRUST_KEY: ${{ secrets.BRAINTRUST_KEY }} + BRAINTRUST_API_KEY: ${{ secrets.BRAINTRUST_API_KEY }} + TRIGGER_SECRET_KEY: ${{ secrets.TRIGGER_SECRET_KEY }} + R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }} + R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + R2_BUCKET: ${{ secrets.R2_BUCKET }} + GITHUB_APP_ID: ${{ secrets.GITHUB_APP_ID }} + GITHUB_APP_PRIVATE_KEY_BASE64: ${{ secrets.GITHUB_APP_PRIVATE_KEY_BASE64 }} + GITHUB_WEBHOOK_SECRET: ${{ secrets.GITHUB_WEBHOOK_SECRET }} + # Additional variables from .env + ENVIRONMENT: ${{ secrets.ENVIRONMENT }} + LOG_LEVEL: ${{ secrets.LOG_LEVEL }} + BUSTER_URL: ${{ secrets.BUSTER_URL }} + BUSTER_WH_TOKEN: ${{ secrets.BUSTER_WH_TOKEN }} + POOLER_URL: ${{ secrets.POOLER_URL }} + SERVER_URL: ${{ secrets.SERVER_URL }} + JWT_SECRET: ${{ secrets.JWT_SECRET }} + SLACK_CLIENT_ID: ${{ secrets.SLACK_CLIENT_ID }} + SLACK_CLIENT_SECRET: ${{ secrets.SLACK_CLIENT_SECRET }} + SLACK_SIGNING_SECRET: ${{ secrets.SLACK_SIGNING_SECRET }} + SLACK_APP_SUPPORT_URL: ${{ secrets.SLACK_APP_SUPPORT_URL }} + AI_GATEWAY_API_KEY: ${{ secrets.AI_GATEWAY_API_KEY }} + DAYTONA_API_KEY: ${{ secrets.DAYTONA_API_KEY }} + # Lint job - runs in parallel lint: name: Lint runs-on: blacksmith-2vcpu-ubuntu-2404 timeout-minutes: 5 + needs: build steps: - name: Checkout code uses: actions/checkout@v4 - - name: Mount node_modules sticky disk - uses: useblacksmith/stickydisk@v1 - with: - key: ${{ github.repository }}-${{ github.ref_name }}-node-modules - path: node_modules - - - name: Mount pnpm store sticky disk - uses: useblacksmith/stickydisk@v1 - with: - key: ${{ github.repository }}-${{ github.ref_name }}-pnpm-store - path: ~/.pnpm-store - - name: Setup Node Environment uses: ./.github/actions/setup-node-env with: @@ -98,6 +166,7 @@ jobs: name: Test runs-on: blacksmith-8vcpu-ubuntu-2404 timeout-minutes: 10 + needs: build steps: - name: Checkout code uses: actions/checkout@v4