Robot Framework reports with a real URL, not a file share
Robot Framework already writes a complete static site: report.html for the summary, log.html for the blow-by-blow, all cross-linked. Two lines of YAML and that folder is a URL your whole team can open.
Drop your Robot Framework report here — get a live link
.zip, folder, or single .html — free, no account, live for 7 days.
The artifact dead-end
The summary says 3 tests failed. The why lives in log.html — which is sitting in an artifacts zip, cross-linked to report.html in a way that only survives if you extract everything and open it locally.
So the report gets screenshotted into tickets, or someone re-runs the suite locally to see the log. The website Robot wrote for you never gets served as one.
Two lines to a live link
Build your output like you already do, then hand the folder to the action:
Run the suite
robot --outputdir results tests/.github/workflows/ci.yml
- uses: bitgate/ship-page-action@v1
if: always()
with:
path: results/
root-file: report.htmlpath: results/ deploys exactly what the tool wrote — no detection to configure. root-file: report.html injects a tiny redirect index, so the live URL opens on report.html instead of a directory listing. The link goes in the job summary — add comment: true and it lands on the pull request too.
What you get
- report.html ↔ log.html cross-links keep working — the output directory is served exactly as Robot wrote it
- root-file: report.html injects a tiny redirect, so the URL opens on the summary instead of a directory listing
- if: always() means the failing run is the one that publishes — the log you need most is never skipped
Questions
What is root-file doing exactly?
Robot names its entry point report.html, not index.html. The action injects a minimal redirect index so the live URL lands on report.html; every other file serves at its normal path, so links into log.html work.
Should I deploy output.xml too?
It comes along for the ride when you deploy the directory — harmless, and useful if anyone wants to reprocess results. Exclude it with exclude: results/output.xml if you'd rather not publish raw result data.
Can I keep one stable URL per suite?
Yes: name: regression plus an sp_ API key redeploys the same URL on every run — the link in your dashboard or wiki never goes stale.
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.
Need to share the report with someone outside GitHub? How to share a GitHub Actions artifact without a login.