Skip to content

fix: stop role_unreachable emails to customers who disconnected on purpose #12

fix: stop role_unreachable emails to customers who disconnected on purpose

fix: stop role_unreachable emails to customers who disconnected on purpose #12

Workflow file for this run

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