Home

GitHub Action

Automatically upload your Playwright test results to Exolar from GitHub Actions. Track test history, detect flaky tests, and analyze failures.

Quick Start

1Get your API Key

Go to Settings → API Keys in the dashboard and create a new API key. Copy the key (it starts with exolar_) - you'll need it for the next step.

2Add the secret to GitHub

In your GitHub repository, go to Settings → Secrets and variables → Actions. Create a new secret named EXOLAR_API_KEY with your API key.

3Add to your workflow

Add the action to your Playwright workflow file:

.github/workflows/playwright.yml
name: Playwright Tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm ci

      - name: Install Playwright browsers
        run: npx playwright install --with-deps

      - name: Run Playwright tests
        run: npx playwright test

      - name: Upload to Exolar
        if: always()
        uses: Montinou/e2e-test-dashboard-action@v1
        with:
          api-key: ${{ secrets.EXOLAR_API_KEY }}
          results-path: ./test-results

Configuration

All Options

- name: Upload to Exolar
  if: always()
  uses: Montinou/e2e-test-dashboard-action@v1
  with:
    # Required
    api-key: ${{ secrets.EXOLAR_API_KEY }}

    # Optional - customize paths
    results-path: ./test-results
    report-path: ./playwright-report

    # Optional - metadata
    suite-name: "E2E Tests"
    branch: ${{ github.ref_name }}
    commit-sha: ${{ github.sha }}

    # Optional - artifact upload
    upload-artifacts: true
    artifact-types: "video,screenshot,trace"

Input Reference

api-keyRequired

API key from the dashboard

results-path

Default: ./test-results

Path to Playwright test results

report-path

Default: ./playwright-report

Path to Playwright HTML report

suite-name

Default: default

Name for grouping test runs

upload-artifacts

Default: true

Upload videos, screenshots, traces

Playwright Configuration

Make sure your Playwright config outputs test results in JSON format:

playwright.config.ts
// playwright.config.ts
export default defineConfig({
  reporter: [
    ['html'],
    ['json', { outputFile: 'test-results/results.json' }]
  ],

  use: {
    // Capture screenshots and videos on failure
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
    trace: 'retain-on-failure',
  },
});

Troubleshooting

No test results uploaded

Make sure your Playwright config includes the JSON reporter and the results-path matches your output directory.

Authentication failed

Verify your API key is correct and the secret is properly configured in GitHub.

Action not running on failure

Add if: always() to ensure the action runs even when tests fail.