Your Playwright report, online before the run finishes
Playwright's HTML report is a full interactive website — traces, screenshots, videos, network logs. GitHub's answer is to zip it and hide it in the artifacts tab. Here's the two-line fix that puts a clickable link on every run instead.
The artifact dead-end
The default flow punishes anyone who wants to look at results: find the workflow run, scroll to artifacts, download a zip, extract it, open index.html — and then watch half the assets 404, because browsers sandbox file:// pages and Playwright's report wasn't built for them.
So reviewers don't look. A red PR gets approved on vibes because opening the report costs two minutes of faff. The information existed; it just wasn't reachable.
Two lines to a live link
Generate the report like you already do, then hand the folder to the action:
Generate the report
npx playwright test.github/workflows/ci.yml
- uses: bitgate/ship-page-action@v1
if: always()
with:
path: playwright-report/Omit path entirely and the action auto-detects playwright-report/ on its own. The URL lands in the job summary — add comment: true and it lands on the pull request too.
What you get
- Traces, screenshots and videos all resolve — every drop mounts at the root of its own subdomain, exactly like localhost did
- if: always() publishes the report even when tests fail, which is precisely the run you want to inspect
- Add name: pr-${{ github.event.number }} and an API key for a stable per-PR URL that every push redeploys in place
Questions
Does the link work without an account?
Yes. Anonymous deploys need zero config and stay live for 7 days. Viewers never log in — the URL is the access control.
What about sharded or merged reports?
Point path at whatever directory holds your final report — after npx playwright merge-reports, or each shard's own folder deployed as separate drops. Omit path entirely and the action auto-detects playwright-report/ on its own.
How is this different from GitHub Pages?
No gh-pages branch, no commit churn, no per-repo site limit, no waiting on a Pages build. The report folder is served as-is, seconds after the test step ends.
Try it on your next run
Anonymous deploys need no account and no key — paste the step, get a link. When you want stable URLs that redeploy in place, an API key and a name are all it takes.