Repository navigation
fix: stop role_unreachable emails to customers who disconnected on purpose #12
Workflow file for this run
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: E2E | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "apps/website/**" | |
| - "docs/**" | |
| - "plans/**" | |
| - "**/*.md" | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "apps/website/**" | |
| - "docs/**" | |
| - "plans/**" | |
| - "**/*.md" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| # Not test.yml's test-db-<ref> group: GitHub keeps one pending run per group, | |
| # so a queued e2e run would cancel a pending Test run, and deploy-api.yml | |
| # deploys only when Test completes. e2e only inserts uniquely named rows | |
| # (a fresh owner and org per run), so it can't delete a fixture test-web reads. | |
| concurrency: | |
| group: e2e-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| e2e: | |
| # Forks get no secrets; the setup test needs the database and the model key. | |
| if: github.repository == 'wraps-team/wraps' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v4 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0 | |
| - name: Setup Node.js 24.x | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: 24.x | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build web workspace dependencies | |
| run: pnpm --filter "@wraps/web^..." build | |
| - name: Install Chromium | |
| run: pnpm --filter @wraps/e2e exec e2e-web install chromium --with-deps | |
| # Replays the committed recordings in apps/e2e/.e2e/cache (read-only in | |
| # CI). A step whose recording no longer matches the UI falls back to the | |
| # live agent, which is what the model key is for. | |
| - name: Run e2e | |
| run: pnpm test:e2e --reporter list,junit | |
| env: | |
| DATABASE_URL: ${{ secrets.TEST_DATABASE_URL }} | |
| BETTER_AUTH_SECRET: test-secret-key-for-testing-only | |
| AI_GATEWAY_API_KEY: ${{ secrets.AI_GATEWAY_API_KEY }} | |
| # Not .e2e/logs: the app log is written unredacted, and artifacts on a | |
| # public repo are downloadable by anyone signed in. | |
| - name: Upload report | |
| if: ${{ !cancelled() }} | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | |
| with: | |
| name: e2e-report | |
| path: | | |
| apps/e2e/.e2e/report.json | |
| apps/e2e/.e2e/junit.xml | |
| apps/e2e/.e2e/results | |
| if-no-files-found: warn | |
| retention-days: 7 |