Skip to main content
What you’ll learn
  • How to stream Playwright test results from GitHub Actions to TestDino
  • How to group sharded matrix jobs into a single run
Set up a GitHub Actions workflow that streams Playwright test results to TestDino during the run and view aggregated analytics, failure analysis, and flaky test detection on your dashboard. This guide covers a basic workflow and a sharded workflow for parallel test execution across multiple shards.

Prerequisites

Before setting up, ensure you have:
playwright.config.ts
Keep any existing reporter entries, such as ['html']. TestDino runs alongside them and streams results as the run executes.

Store the API Key

  1. Go to your GitHub repository
  2. Open Settings → Secrets and variables → Actions
  3. Click New repository secret
  4. Name: TESTDINO_TOKEN
  5. Value: Your TestDino API key
  6. Click Add secret

Basic Workflow

Run your tests with TESTDINO_TOKEN set. Results stream to TestDino during the run, so no separate upload step is needed.
.github/workflows/test.yml
Results stream live even when tests fail, so failures land on the dashboard without an if: always() step.

Sharded Tests

Run tests in parallel shards. Pass the same ciRunId to every shard so TestDino groups them into one run.
.github/workflows/test.yml
Set the ciRunId reporter option in playwright.config to the same value if you prefer running npx playwright test directly instead of npx tdpw test.

Pipeline execution

After the workflow runs, GitHub Actions shows each matrix shard job in the workflow run view. Every shard streams its results, and TestDino merges them into one run. GitHub Actions workflow run showing 4 matrix shard jobs, each streaming Playwright results to TestDino

Results in TestDino

The test run appears in your TestDino dashboard with full failure details, flaky detection, and trend data as tests complete. TestDino Test Runs dashboard showing streamed results from GitHub Actions with pass/fail counts and AI Insights

Tag by Environment

Map branches to environments in project settings so runs route to the correct environment automatically. See Environment Mapping for the pattern rules.

Troubleshooting

Confirm @testdino/playwright is in your playwright.config reporter array and TESTDINO_TOKEN is set in the run step. Results stream during the run, so no separate upload step is required.
Pass the same --ci-run-id (or ciRunId reporter option) to every shard. Different values create one run per shard.
Confirm the secret is set in Settings → Secrets and variables → Actions. Secret names are case-sensitive.

Next Steps

CI Optimization

Reduce CI time with smart reruns

Branch Mapping

Map branches to environments for organized test runs

Integrations

Connect Slack, Jira, Linear, Asana, and more

GitHub App Integration

PR comments, CI checks, and pull request sync