Guide

How to publish an HTML report from GitHub Actions and share it

Updated 30 October 2026

A workflow can keep the report as an artifact, which reviewers download as a ZIP, or publish it to GitHub Pages, which is public on the internet unless your organization is on GitHub Enterprise Cloud. The ashare GitHub Action publishes the report and posts its link in the pull request. With visibility: company only people who sign in with your company email open it, and each push updates the same link and the same comment.

Three ways to get a report out of CI

OptionWhat the reader getsWho can open it
Workflow artifactA ZIP on the run’s summary page: upload-artifact zips files by default. Download, unpack, open locally. Kept 90 days by default.People with read access to the repository, signed in to GitHub
GitHub PagesA page at a URLAnyone on the internet, even when the repository is private. Private publishing only on GitHub Enterprise Cloud, for people with read access.
ashare ActionA link in a pull request comment, a new version on every pushAnyone with the link, your company by email domain, or the people you add by email. No GitHub account needed.

If everyone who reads the report already has access to the repository, an artifact keeps it inside GitHub and you need nothing else. The friction starts with readers outside the repository, a product manager or a client, and with reports that need a click, not a download.

Share a Playwright report

Playwright’s HTML reporter writes a self-contained folder, playwright-report by default. Screenshots and other attachments go into its data subfolder. Playwright’s CI guide warns that the report does not work when opened from disk: the reader extracts the artifact and runs npx playwright show-report, so they need Node.js and Playwright. Served from a link, it opens in the browser.

Zip the folder to keep the attachments, and publish the ZIP. Both steps run even when tests fail, which is when the report matters:

.github/workflows/e2e.yml
name: E2E
on: pull_request

permissions:
  contents: read
  pull-requests: write

jobs:
  e2e:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - run: npm ci
      - run: npx playwright install --with-deps
      - run: npx playwright test --reporter=html
      - if: ${{ !cancelled() }}
        run: zip -r playwright-report.zip playwright-report
      - if: ${{ !cancelled() }}
        uses: Magir/ashare-action@v1
        with:
          file: playwright-report.zip
          title: E2E report
          api-key: ${{ secrets.ASHARE_API_KEY }}
          visibility: company

The Action takes HTML, Markdown or a ZIP. A ZIP needs index.html at its root or in its one folder, up to 200 files and 25 MB in all. A report without attachments can go up as playwright-report/index.html alone.

Share a Lighthouse report

The Lighthouse CLI writes HTML by default. In CI, run Chrome headless and name the file:

.github/workflows/lighthouse.yml
      - run: npx lighthouse https://staging.example.com --output html --output-path lighthouse.html --chrome-flags="--headless"
      - uses: Magir/ashare-action@v1
        with:
          file: lighthouse.html
          api-key: ${{ secrets.ASHARE_API_KEY }}
          visibility: company

Lighthouse CI can upload reports to its temporary public storage: anyone with the link opens them, and they are deleted after a few days. That is fine for an open-source project. For a staging site behind a login, keep the report closed.

Two reports in one pull request do not collide: each file gets its own document and its own comment.

Choose who opens the link

Readers sign in with a 6-digit code sent to their email. For company and private reports you see who opened them and when. Readers select text and comment, and an agent can pick up the threads with npx ashare-cli comments <id>.

Setup notes

All inputs and outputs: GitHub Action.

ashare.net: your agent publishes HTML or Markdown and you choose who opens it: your company, specific emails or a password. Readers comment, the agent fixes the document.

Connect your agent