name: Capture v17.6.5 E2E failures on: push: branches: - feature/v17.6.5-stability paths: - .github/workflows/debug-v1765-e2e.yml permissions: contents: write jobs: debug: if: github.actor != 'github-actions[bot]' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - run: npm install - run: npx playwright install --with-deps chromium - name: Capture failures run: | npx playwright test --config=tests/playwright.config.mjs --reporter=json > /tmp/pw.json || true node <<'NODE' const fs=require('fs'); const r=JSON.parse(fs.readFileSync('/tmp/pw.json','utf8')); const out=[]; function walk(suite,path=[]){ const here=[...path,(suite.title||'')].filter(Boolean); for(const spec of suite.specs||[]){ for(const test of spec.tests||[]){ const bad=(test.results||[]).filter(x=>x.status==='failed'||x.status==='timedOut'); if(!bad.length)continue; out.push('TEST: '+[...here,spec.title].filter(Boolean).join(' > ')); for(const res of bad){ out.push('STATUS: '+res.status); for(const e of res.errors||[])out.push(String(e.message||e.value||e).slice(0,6000)); } out.push('---'); } } for(const child of suite.suites||[])walk(child,here); } for(const suite of r.suites||[])walk(suite,[]); fs.writeFileSync('e2e-v1765-failures.txt',out.join('\n')||'NO FAILURES\n'); NODE - name: Commit diagnostics run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git add e2e-v1765-failures.txt git commit -m "Capture v17.6.5 E2E failures" git push