Allure reports without running an Allure server
Allure's report is gorgeous — and traditionally trapped behind allure serve on someone's laptop, or a self-hosted server you now maintain. Generate the static report, ship the folder, done.
The artifact dead-end
allure serve spins up a local web server — useless for the teammate who just wants to see the failures. The 'proper' answer is hosting Allure Server or bolting S3 + Lambda + auth together, which is a lot of infrastructure for a test report.
But allure generate already emits a static site. Everything the server does for viewing, a plain static host does better — faster and with nothing to maintain.
Two lines to a live link
Generate the report like you already do, then hand the folder to the action:
Generate the report
allure generate allure-results -o allure-report --clean.github/workflows/ci.yml
- uses: bitgate/ship-page-action@v1
if: always()
with:
path: allure-report/Omit path entirely and the action auto-detects allure-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
- Suites, categories, history tabs and attachments render exactly as generated — the folder is served as-is
- Works for every Allure adapter — JUnit, TestNG, pytest, Playwright, Cucumber — they all emit the same static report
- Omit path entirely — the action auto-detects allure-report/
Questions
Does the history/trend tab work?
The trend uses data baked into allure-results at generation time. Keep a history/ folder between runs (cache it in CI) and allure generate includes it — the deployed report shows the full trend.
Can I deploy from Jenkins or GitLab instead of GitHub Actions?
Yes — the action is GitHub-only, but the API is one curl. Zip the folder and POST it to https://ship.page/deploy; see /docs/ci-curl for the recipe.
What about large result sets?
Anonymous drops take up to 500 files; an API key raises that to 900, and chunked uploads go to 10,000 — enough for very large suites.
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.