Use when a Playwright suite needs hosted analytics across runs: flakiness over time, slowest tests and pass-rate trends. Sets up Currents.dev with @currents/playwright, currents.config.ts, the reporter, traces, videos and screenshots, and runs via npx pwc.
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Deep reference for the currents-integration SKILL.md. Consult when wiring Currents into GitHub Actions, coordinating per-PR vs main baselines, or setting up the Cypress sister integration.
# .github/workflows/e2e.yml
name: e2e
on:
pull_request:
push:
branches: [main]
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with: { node-version: '20' }
- run: npm ci
- run: npx playwright install --with-deps
- name: Run tests with Currents
env:
CURRENTS_RECORD_KEY: ${{ secrets.CURRENTS_RECORD_KEY }}
run: npx pwc
- name: Upload Playwright HTML report (fallback)
if: always()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
retention-days: 7if: always() on the artifact upload preserves the local report even when
the Currents stream succeeds - useful when the dashboard is unreachable.
The Currents dashboard separates main runs (baseline) from PR runs (comparison). For the analytics to make sense:
cart.spec.ts:42".Set the CI workflow's branch + PR triggers (the CI integration example above) to record both.
The Cypress integration follows the same shape with @currents/cypress
instead of @currents/playwright:
npm i -D @currents/cypressThen in cypress.config.ts:
import { defineConfig } from 'cypress';
import { currentsConfig } from '@currents/cypress';
export default defineConfig({
...currentsConfig({
recordKey: process.env.CURRENTS_RECORD_KEY!,
projectId: 'your-project-id',
}),
});Run via npx cypress-cloud run (the Cypress equivalent of pwc).