Repository navigation
iOS parity round 2: Library and debates as evidence tools #298
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: Live provider E2E | |
| # Real OpenRouter, Jev, and Exa behind the local stack. Every run spends | |
| # provider credit, so pull requests run it only when AI or research code | |
| # changes. Nightly runs catch provider drift without code changes. | |
| on: | |
| pull_request: | |
| paths: | |
| - "supabase/functions/**" | |
| - "src/lib/ai/**" | |
| - "packages/**" | |
| - "e2e/live/**" | |
| - "e2e/full-stack/fake-openrouter.mjs" | |
| - ".superset/db-gate.sh" | |
| - ".github/workflows/live-e2e.yml" | |
| schedule: | |
| - cron: "17 3 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: live-e2e-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| live-e2e: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Node | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: 22 | |
| - name: Set up Supabase CLI | |
| uses: supabase/setup-cli@46f7f98c7f948ad727d22c1e67fab04c223a0520 # v3.0.0 | |
| with: | |
| version: 2.121.0 | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install Chromium | |
| run: npx playwright install --with-deps chromium | |
| # db-gate.sh fails before starting anything when either key is missing. | |
| # Accepted risk (2026-09-24): pull-request code runs with these keys, so | |
| # anyone who can push a branch here could read them. Keep them low-limit. | |
| - name: Live provider journeys | |
| env: | |
| LIVE_PROVIDERS: 1 | |
| # Repository variable override; empty falls back to db-gate.sh's default. | |
| LIVE_MODEL: ${{ vars.LIVE_MODEL }} | |
| LIVE_OPENROUTER_API_KEY: ${{ secrets.LIVE_OPENROUTER_API_KEY }} | |
| LIVE_EXA_API_KEY: ${{ secrets.LIVE_EXA_API_KEY }} | |
| SUPABASE_INTERNAL_IMAGE_REGISTRY: public.ecr.aws | |
| WORKSPACE_GATE_ARTIFACT_ROOT: ${{ runner.temp }}/workspace-gate | |
| run: ./.superset/db-gate.sh | |
| - name: Upload live failure artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: live-e2e-failure-${{ github.run_id }} | |
| path: | | |
| ${{ runner.temp }}/workspace-gate/ | |
| test-results/ | |
| playwright-report/ | |
| if-no-files-found: ignore | |
| retention-days: 7 |