From 837b7c1b7e82c8d701df802d03fbaa2161f5bd7c Mon Sep 17 00:00:00 2001 From: Wells Bunker Date: Fri, 26 Sep 2025 13:43:01 -0600 Subject: [PATCH] test --- .github/workflows/lint-build-test.yml | 242 +++++++++++++++++++------- 1 file changed, 181 insertions(+), 61 deletions(-) diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml index 844f3a1bd..7c5d4ca45 100644 --- a/.github/workflows/lint-build-test.yml +++ b/.github/workflows/lint-build-test.yml @@ -9,68 +9,7 @@ concurrency: cancel-in-progress: true env: - NODE_ENV: production - TURBO_CACHE_DIR: .turbo CI: true - SKIP_ENV_CHECK: true - TURBO_TELEMETRY_DISABLED: 1 - 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 }} - TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} - 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 }} - 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 }} jobs: # Lint job - runs first @@ -107,6 +46,67 @@ jobs: - name: Build all packages run: pnpm turbo build + env: + TURBO_CACHE_DIR: .turbo + SKIP_ENV_CHECK: true + TURBO_TELEMETRY_DISABLED: 1 + 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 }} + TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} + 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 }} + 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 }} # Unit test job - runs after build completes unit_test: @@ -125,6 +125,67 @@ jobs: - name: Run all unit tests run: pnpm turbo test:unit + env: + TURBO_CACHE_DIR: .turbo + SKIP_ENV_CHECK: true + TURBO_TELEMETRY_DISABLED: 1 + 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 }} + TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} + 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 }} + 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 }} - name: Upload test coverage uses: actions/upload-artifact@v4 @@ -185,7 +246,66 @@ jobs: pnpm dlx momentic install-browsers --all pnpm dlx momentic run --api-key $MOMENTIC_API_KEY --upload-results --parallel 5 --wait-on http://localhost:3000 --wait-on-timeout 300000 --include "simple*" env: + TURBO_CACHE_DIR: .turbo + SKIP_ENV_CHECK: true + TURBO_TELEMETRY_DISABLED: 1 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 }} + TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }} + 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 }} + 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 }} - name: Stop services if: always()