Sharing Reports
When to Use
Use this when letting a teammate, designer, or reviewer look at a report you generated.
Decision
| Approach | When |
|---|---|
| Zip + send | Quick teammate share |
| GitHub Actions artifact | Standard CI — retained per run |
| GitHub Pages / static hosting | Persistent URL per PR or SHA |
| Port forwarding | Give access to a report on a remote host |
attachmentsBaseURL |
Huge reports — offload images/traces to object storage |
Pattern
Zip and send:
zip -r playwright-report.zip playwright-report/
Recipient extracts, then runs npx playwright show-report ./playwright-report.
GitHub Actions artifact (CI standard):
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
CDN-offloaded attachments:
reporter: [['html', { attachmentsBaseURL: 'https://cdn.example.com/runs/123/' }]],
The report fetches data/<file> from that base URL instead of next to index.html. Trailing slash is required.
Common Mistakes
- Wrong: sharing via
file://→ Right: trace viewer breaks; recipient needsshow-reportor HTTP server - Wrong:
attachmentsBaseURLwithout trailing slash → Right: URL concatenation fails with 404 on every attachment - Wrong: uploading
test-results/instead ofplaywright-report/→ Right: wrong artifact; report won't render