name: Nightly E2E on: schedule: # Every day at midnight UTC - cron: "0 0 * * *" # Allow manual trigger for debugging workflow_dispatch: concurrency: group: ${{ github.workflow }} cancel-in-progress: true jobs: e2e-ai-chat: name: "E2E: ai-chat (Playwright)" timeout-minutes: 15 runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 with: fetch-depth: 1 - uses: actions/setup-node@v6 with: node-version: 24 cache: "npm" - run: npm ci - run: npm run build - name: Get Playwright version id: playwright-version run: echo "version=$(jq -r '.packages["node_modules/playwright"].version' package-lock.json)" >> $GITHUB_OUTPUT - name: Cache Playwright browsers uses: actions/cache@v5 id: playwright-cache with: path: ~/.cache/ms-playwright key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }} - name: Install Playwright browsers if: steps.playwright-cache.outputs.cache-hit != 'true' run: npx playwright install --with-deps chromium - name: Run ai-chat e2e tests env: CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} run: npx playwright test --config e2e/playwright.config.ts working-directory: packages/ai-chat