@midleman/playwright-reporter 0.47.7 → 0.47.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -432
- package/dist/cli/run-shard.d.ts +11 -0
- package/dist/cli/run-shard.d.ts.map +1 -1
- package/dist/cli/run-shard.js +43 -6
- package/dist/cli/run-shard.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,49 +1,14 @@
|
|
|
1
1
|
# @midleman/playwright-reporter
|
|
2
2
|
|
|
3
|
-
A Playwright reporter that sends test results to the E2E Test Insights API for
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
This reporter collects Playwright test results and sends them to the E2E Test Insights API, which stores them as Parquet files (on S3 in production, or local filesystem for development). The data can then be analyzed with DuckDB.
|
|
8
|
-
|
|
9
|
-
**Data Flow:**
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
Playwright Reporter → POST to API → S3 (Parquet files)
|
|
13
|
-
↓
|
|
14
|
-
Scheduler → S3 caches
|
|
15
|
-
↓
|
|
16
|
-
Dashboard → displays data
|
|
17
|
-
```
|
|
3
|
+
A Playwright reporter that sends test results to the E2E Test Insights API, plus a CLI for predictive test sharding.
|
|
18
4
|
|
|
19
5
|
## Installation
|
|
20
6
|
|
|
21
|
-
### Production (Published Package)
|
|
22
|
-
|
|
23
7
|
```bash
|
|
24
8
|
npm install @midleman/playwright-reporter
|
|
25
9
|
```
|
|
26
10
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
For iterating on the reporter locally, use npm link:
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
# In e2e-test-insights repo - build and link
|
|
33
|
-
cd packages/playwright-reporter
|
|
34
|
-
npm install
|
|
35
|
-
npm run build
|
|
36
|
-
npm link
|
|
37
|
-
|
|
38
|
-
# In your test project (e.g., positron) - use the link
|
|
39
|
-
npm link @midleman/playwright-reporter
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
> **Note:** After making changes to the reporter, run `npm run build` to update the linked package.
|
|
43
|
-
|
|
44
|
-
## Configuration
|
|
45
|
-
|
|
46
|
-
### Via Playwright Config
|
|
11
|
+
## Quick Start
|
|
47
12
|
|
|
48
13
|
```typescript
|
|
49
14
|
// playwright.config.ts
|
|
@@ -52,340 +17,138 @@ import { defineConfig } from '@playwright/test';
|
|
|
52
17
|
export default defineConfig({
|
|
53
18
|
reporter: [
|
|
54
19
|
['html'],
|
|
55
|
-
[
|
|
56
|
-
'@midleman/playwright-reporter',
|
|
57
|
-
{
|
|
58
|
-
mode: 'dev', // 'dev', 'prod', or 'disabled'
|
|
59
|
-
verbose: true, // Enable debug logging
|
|
60
|
-
},
|
|
61
|
-
],
|
|
20
|
+
['@midleman/playwright-reporter', { mode: 'prod' }],
|
|
62
21
|
],
|
|
63
22
|
});
|
|
64
23
|
```
|
|
65
24
|
|
|
66
|
-
|
|
25
|
+
Set the `CONNECT_API_KEY` environment variable (required for `mode: 'prod'`).
|
|
67
26
|
|
|
68
|
-
|
|
27
|
+
## Reporter Configuration
|
|
69
28
|
|
|
70
|
-
|
|
29
|
+
### Mode
|
|
71
30
|
|
|
72
|
-
| Mode | API Endpoint | Use Case |
|
|
73
|
-
| ---------- | ------------------------------------------------ | ----------------- |
|
|
74
|
-
| `dev` | `http://localhost:8000` | Local development |
|
|
75
|
-
| `prod` | `https://connect.posit.it/e2e-test-insights-api` | CI/Production |
|
|
76
|
-
| `disabled` | None | Skip reporting |
|
|
31
|
+
| Mode | API Endpoint | Use Case |
|
|
32
|
+
| ---------- | ------------------------------------------------ | ----------------- |
|
|
33
|
+
| `dev` | `http://localhost:8000` | Local development |
|
|
34
|
+
| `prod` | `https://connect.posit.it/e2e-test-insights-api` | CI/Production |
|
|
35
|
+
| `disabled` | None | Skip reporting |
|
|
77
36
|
|
|
78
|
-
**
|
|
37
|
+
> **Note:** `mode: 'prod'` only works in CI (`GITHUB_ACTIONS=true` or `CI=true`). Running locally with `mode: 'prod'` disables reporting to avoid polluting production data.
|
|
79
38
|
|
|
80
|
-
|
|
81
|
-
- `mode: 'dev'` works anywhere and sends to your local API.
|
|
82
|
-
- The reporter sends data to the Plumber API, which then writes to storage (local or S3). Make sure your API is running with matching storage mode:
|
|
83
|
-
- `mode: 'dev'` → run API with `npm run api` (local) or `npm run api:s3` (S3)
|
|
84
|
-
- `mode: 'prod'` → uses deployed Posit Connect API (CI only)
|
|
85
|
-
|
|
86
|
-
### Environment Variables
|
|
87
|
-
|
|
88
|
-
| Variable | Description | Default |
|
|
89
|
-
| ---------------------- | ----------------------------------------- | -------------------------- |
|
|
90
|
-
| `E2E_REPORTER_MODE` | Reporter mode: `dev`, `prod`, `disabled` | (none - required) |
|
|
91
|
-
| `REPORTER_REPO_NAME` | Repository name override | From `GITHUB_REPOSITORY` |
|
|
92
|
-
| `E2E_REPORTER_VERBOSE` | Enable debug logging (`1` or `0`) | `0` |
|
|
93
|
-
| `CONNECT_API_KEY` | Posit Connect API key for authentication | (none - required for prod) |
|
|
94
|
-
| `E2E_CONNECT_APIKEY` | Fallback for `CONNECT_API_KEY` | (none) |
|
|
95
|
-
| `REPORT_URL` | Base URL for Playwright HTML report links | (none - optional) |
|
|
96
|
-
|
|
97
|
-
#### Report URL
|
|
98
|
-
|
|
99
|
-
To include links to the Playwright HTML report in test results, set `REPORT_URL` before running tests. The reporter appends `#?testId={testId}` to deep-link to specific tests.
|
|
100
|
-
|
|
101
|
-
If `REPORT_URL` is not set, `reportUrl` will be `undefined` in test results (no links generated).
|
|
102
|
-
|
|
103
|
-
## Output Structure (S3)
|
|
104
|
-
|
|
105
|
-
The API writes test results to S3 in the following structure:
|
|
106
|
-
|
|
107
|
-
```text
|
|
108
|
-
s3://{bucket}/test-results/
|
|
109
|
-
└── {repoName}/
|
|
110
|
-
└── {date}/ # YYYY-MM-DD partition
|
|
111
|
-
└── {runId}/
|
|
112
|
-
└── data.parquet # All test results + embedded run metadata
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
**Consolidated format:**
|
|
116
|
-
|
|
117
|
-
Each run produces a single `data.parquet` file containing both test results AND run metadata. The file is overwritten periodically during test execution for near-real-time visibility.
|
|
118
|
-
|
|
119
|
-
- **Live updates:** File is updated every few seconds during the run
|
|
120
|
-
- **Sharded runs:** Each shard writes to its own `{runId}/` directory
|
|
121
|
-
- **Single source of truth:** No separate files for results vs run metadata
|
|
122
|
-
|
|
123
|
-
**Note:** The reporter does not write directly to S3. It sends events to the API, which handles storage.
|
|
124
|
-
|
|
125
|
-
## Parquet Schema
|
|
126
|
-
|
|
127
|
-
### data.parquet
|
|
128
|
-
|
|
129
|
-
Each row represents a test result with embedded run metadata:
|
|
130
|
-
|
|
131
|
-
**Test Result Fields:**
|
|
132
|
-
|
|
133
|
-
| Column | Type | Description |
|
|
134
|
-
| ---------------- | ------ | ----------------------------------------- |
|
|
135
|
-
| `repoName` | UTF8 | Repository name |
|
|
136
|
-
| `runId` | UTF8 | Unique run identifier |
|
|
137
|
-
| `specPath` | UTF8 | Relative path to spec file |
|
|
138
|
-
| `project` | UTF8? | Playwright project name |
|
|
139
|
-
| `testName` | UTF8 | Test title |
|
|
140
|
-
| `testId` | UTF8? | Test identifier |
|
|
141
|
-
| `status` | UTF8 | `passed`, `failed`, `skipped`, or `flaky` |
|
|
142
|
-
| `durationMs` | INT64? | Test duration in milliseconds |
|
|
143
|
-
| `startedAt` | UTF8? | ISO timestamp when test started |
|
|
144
|
-
| `attempt` | INT32? | Retry attempt number (1-indexed) |
|
|
145
|
-
| `retries` | INT32? | Total retries configured |
|
|
146
|
-
| `failureMessage` | UTF8? | Error message if failed |
|
|
147
|
-
| `eventId` | UTF8 | Idempotent event ID for deduplication |
|
|
148
|
-
| `timestamp` | UTF8 | ISO timestamp when event was created |
|
|
149
|
-
| `browser` | UTF8? | Browser name (chromium, firefox, etc.) |
|
|
150
|
-
| `os` | UTF8? | Operating system (mac, win, linux) |
|
|
151
|
-
| `branch` | UTF8? | Git branch name |
|
|
152
|
-
| `sha` | UTF8? | Git commit SHA |
|
|
153
|
-
|
|
154
|
-
**Run Metadata Fields (embedded in each row):**
|
|
155
|
-
|
|
156
|
-
| Column | Type | Description |
|
|
157
|
-
| --------------- | ------ | ---------------------------------------- |
|
|
158
|
-
| `runStartedAt` | UTF8 | ISO timestamp when run started |
|
|
159
|
-
| `runCompletedAt`| UTF8? | ISO timestamp when run completed |
|
|
160
|
-
| `runStatus` | UTF8? | Final run status (`passed`, `failed`) |
|
|
161
|
-
| `runDurationMs` | INT64? | Total run duration in milliseconds |
|
|
162
|
-
| `workflowName` | UTF8? | GitHub workflow name |
|
|
163
|
-
| `jobName` | UTF8? | GitHub job name |
|
|
164
|
-
| `runUrl` | UTF8? | GitHub Actions run URL |
|
|
165
|
-
| `runNumber` | INT32? | GitHub run attempt number |
|
|
166
|
-
| `githubRunId` | UTF8? | Raw GitHub run ID |
|
|
167
|
-
| `countsPassed` | INT32? | Passed test count (at completion) |
|
|
168
|
-
| `countsFailed` | INT32? | Failed test count (at completion) |
|
|
169
|
-
| `countsSkipped` | INT32? | Skipped test count (at completion) |
|
|
170
|
-
| `countsFlaky` | INT32? | Flaky test count (at completion) |
|
|
171
|
-
|
|
172
|
-
**Note:** A placeholder row with `specPath='__run_started__'` is written at run start so the run appears immediately in the dashboard.
|
|
173
|
-
|
|
174
|
-
## Querying with DuckDB
|
|
175
|
-
|
|
176
|
-
```sql
|
|
177
|
-
-- Query all results from a date range (excluding placeholder rows)
|
|
178
|
-
SELECT * FROM read_parquet('s3://bucket/test-results/positron/2024-01-*/*/data.parquet')
|
|
179
|
-
WHERE specPath != '__run_started__';
|
|
180
|
-
|
|
181
|
-
-- Get failure summary by spec
|
|
182
|
-
SELECT
|
|
183
|
-
specPath,
|
|
184
|
-
COUNT(*) as total,
|
|
185
|
-
SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) as failures
|
|
186
|
-
FROM read_parquet('s3://bucket/test-results/positron/**/data.parquet')
|
|
187
|
-
WHERE specPath != '__run_started__'
|
|
188
|
-
GROUP BY specPath
|
|
189
|
-
ORDER BY failures DESC;
|
|
190
|
-
|
|
191
|
-
-- Get run summaries (one row per run with embedded metadata)
|
|
192
|
-
SELECT DISTINCT
|
|
193
|
-
runId,
|
|
194
|
-
runStartedAt,
|
|
195
|
-
runCompletedAt,
|
|
196
|
-
runStatus,
|
|
197
|
-
runDurationMs,
|
|
198
|
-
countsPassed,
|
|
199
|
-
countsFailed,
|
|
200
|
-
countsSkipped,
|
|
201
|
-
countsFlaky
|
|
202
|
-
FROM read_parquet('s3://bucket/test-results/positron/**/data.parquet');
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Usage in Other Repositories
|
|
206
|
-
|
|
207
|
-
### Production Setup (CI)
|
|
208
|
-
|
|
209
|
-
For CI/production, install the published package:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
npm install @midleman/playwright-reporter
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Configure Playwright with `mode: 'prod'`:
|
|
39
|
+
### Options
|
|
216
40
|
|
|
217
41
|
```typescript
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
'@midleman/playwright-reporter',
|
|
224
|
-
{
|
|
225
|
-
repoName: 'positron',
|
|
226
|
-
mode: 'prod', // Sends to connect.posit.it API (CI only)
|
|
227
|
-
},
|
|
228
|
-
],
|
|
229
|
-
],
|
|
230
|
-
});
|
|
42
|
+
['@midleman/playwright-reporter', {
|
|
43
|
+
mode: 'prod', // Required: 'dev', 'prod', or 'disabled'
|
|
44
|
+
repoName: 'my-repo', // Optional: defaults to GITHUB_REPOSITORY
|
|
45
|
+
verbose: true, // Optional: enable debug logging
|
|
46
|
+
}]
|
|
231
47
|
```
|
|
232
48
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
### Local Testing Setup
|
|
236
|
-
|
|
237
|
-
For testing the reporter locally before publishing:
|
|
238
|
-
|
|
239
|
-
**1. Link the package** (see [Installation](#local-development-linked-package))
|
|
240
|
-
|
|
241
|
-
**2. Start the local API** (in e2e-test-insights repo):
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
npm run api # Local storage
|
|
245
|
-
# OR
|
|
246
|
-
npm run api:s3 # S3 storage (requires aws sso login)
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
**3. Configure Playwright with `mode: 'dev'`:**
|
|
250
|
-
|
|
251
|
-
```typescript
|
|
252
|
-
// playwright.config.ts
|
|
253
|
-
export default defineConfig({
|
|
254
|
-
reporter: [
|
|
255
|
-
['html'],
|
|
256
|
-
[
|
|
257
|
-
'@midleman/playwright-reporter',
|
|
258
|
-
{
|
|
259
|
-
repoName: 'positron',
|
|
260
|
-
mode: 'dev', // Sends to localhost:8000
|
|
261
|
-
verbose: true, // See debug output
|
|
262
|
-
},
|
|
263
|
-
],
|
|
264
|
-
],
|
|
265
|
-
});
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
**4. Run tests:**
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
npx playwright test
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
Results are sent to your local API.
|
|
275
|
-
|
|
276
|
-
## Local Development
|
|
277
|
-
|
|
278
|
-
```bash
|
|
279
|
-
# 1. Start the API (in e2e-test-insights repo)
|
|
280
|
-
npm run api
|
|
281
|
-
|
|
282
|
-
# 2. Run tests with reporter in dev mode
|
|
283
|
-
npx playwright test
|
|
284
|
-
|
|
285
|
-
# 3. View the dashboard
|
|
286
|
-
npm run app
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
For verbose logging, set `verbose: true` in your playwright config.
|
|
290
|
-
|
|
291
|
-
## Multi-Worker Support
|
|
49
|
+
### Environment Variables
|
|
292
50
|
|
|
293
|
-
|
|
51
|
+
| Variable | Description | Required |
|
|
52
|
+
| -------------------- | ---------------------------------------- | -------- |
|
|
53
|
+
| `CONNECT_API_KEY` | Posit Connect API key | For prod |
|
|
54
|
+
| `REPORTER_REPO_NAME` | Repository name override | No |
|
|
55
|
+
| `REPORT_URL` | Base URL for Playwright HTML report links| No |
|
|
294
56
|
|
|
295
|
-
|
|
296
|
-
- Idempotent `eventId` enables deduplication at query time
|
|
297
|
-
- DuckDB can query across all files with glob patterns
|
|
57
|
+
---
|
|
298
58
|
|
|
299
59
|
## Predictive Sharding CLI
|
|
300
60
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
### Usage
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
npx e2e-insights run-shard \
|
|
307
|
-
--shard-index=1 \
|
|
308
|
-
--shard-total=4 \
|
|
309
|
-
--repo=posit-dev/positron
|
|
310
|
-
```
|
|
61
|
+
Distributes test specs across CI shards using historical duration data for optimal load balancing.
|
|
311
62
|
|
|
312
63
|
### How It Works
|
|
313
64
|
|
|
314
|
-
1. **Spec Discovery** - Runs `npx playwright test --list` to find all spec files
|
|
315
|
-
2. **OS Detection** - Auto-detects OS from `process.platform` (mac, win, linux)
|
|
316
|
-
3. **Duration Lookup** - Fetches historical test durations from the API, filtered by OS
|
|
317
|
-
4. **LPT Algorithm** - Uses Longest Processing Time First bin-packing to distribute specs evenly
|
|
318
|
-
5. **Playwright Execution** - Runs Playwright with only the assigned specs
|
|
319
|
-
|
|
320
|
-
### Shard Coordination & Caching
|
|
321
|
-
|
|
322
|
-
Each workflow run computes its own load balance independently. The cache ensures consistency **within** a single run, not across runs.
|
|
323
|
-
|
|
324
|
-
**Why separate calculations per run?**
|
|
325
|
-
- Different runs may have different specs (different `--grep` filters)
|
|
326
|
-
- Different runs may have different shard counts
|
|
327
|
-
- Test files may change between runs
|
|
328
|
-
|
|
329
|
-
**What IS shared:** Historical duration data from S3. All runs look up the same test duration history.
|
|
330
|
-
|
|
331
|
-
**What is NOT shared:** Shard assignments. Each run gets its own LPT calculation.
|
|
332
|
-
|
|
333
|
-
**Cache Details:**
|
|
334
|
-
- **Key format:** `{repo_id}:{workflow_run_id}:{num_shards}:{specs_hash}`
|
|
335
|
-
- **TTL:** 3 hours (accommodates slow Windows runners)
|
|
336
|
-
- **Storage:** In-memory on the API server
|
|
337
|
-
- **Purpose:** Consistency within a single workflow run
|
|
338
|
-
|
|
339
|
-
**Flow for a single workflow run:**
|
|
340
65
|
```
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
66
|
+
┌────────────────────────────────────────────────────────────────────────────┐
|
|
67
|
+
│ CI WORKFLOW │
|
|
68
|
+
│ │
|
|
69
|
+
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
70
|
+
│ │ npx e2e-insights run-shard --shard-index=2 --shard-total=6 ... │ │
|
|
71
|
+
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
72
|
+
│ │ │
|
|
73
|
+
│ ▼ │
|
|
74
|
+
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
75
|
+
│ │ 1. playwright test --list --reporter=json │ │
|
|
76
|
+
│ │ → Discovers all spec files in project │ │
|
|
77
|
+
│ │ → ["auth.spec.ts", "editor.spec.ts", "console.spec.ts", ...] │ │
|
|
78
|
+
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
79
|
+
│ │ │
|
|
80
|
+
│ ▼ │
|
|
81
|
+
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
82
|
+
│ │ 2. POST /shards/compute │ │
|
|
83
|
+
│ │ { │ │
|
|
84
|
+
│ │ "specs": ["auth.spec.ts", "editor.spec.ts", ...], │ │
|
|
85
|
+
│ │ "shard_index": 1, │ │
|
|
86
|
+
│ │ "num_shards": 6, │ │
|
|
87
|
+
│ │ "repo": "posit-dev/positron" │ │
|
|
88
|
+
│ │ } │ │
|
|
89
|
+
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
90
|
+
│ │ │
|
|
91
|
+
│ ▼ │
|
|
92
|
+
│ ┌─────────────────────────────────────────────────────────────────────┐ │
|
|
93
|
+
│ │ E2E INSIGHTS API │ │
|
|
94
|
+
│ │ │ │
|
|
95
|
+
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌───────────────┐ │ │
|
|
96
|
+
│ │ │ Load test data │ → │ Filter & group │ → │ LPT algorithm │ │ │
|
|
97
|
+
│ │ │ (14-day window) │ │ by spec/os/etc │ │ bin-packing │ │ │
|
|
98
|
+
│ │ └─────────────────┘ └─────────────────┘ └───────────────┘ │ │
|
|
99
|
+
│ │ │ │ │
|
|
100
|
+
│ │ Response: ▼ │ │
|
|
101
|
+
│ │ { │ │
|
|
102
|
+
│ │ "specs": ["editor.spec.ts", "console.spec.ts"], ← shard 2 │ │
|
|
103
|
+
│ │ "estimated_duration_ms": 180000 │ │
|
|
104
|
+
│ │ } │ │
|
|
105
|
+
│ └─────────────────────────────────────────────────────────────────────┘ │
|
|
106
|
+
│ │ │
|
|
107
|
+
│ ▼ │
|
|
108
|
+
│ ┌──────────────────────────────────────────────────────────────────────┐ │
|
|
109
|
+
│ │ 3. playwright test editor.spec.ts console.spec.ts │ │
|
|
110
|
+
│ │ → Runs ONLY the specs assigned to this shard │ │
|
|
111
|
+
│ │ → Reporter sends results back to API │ │
|
|
112
|
+
│ └──────────────────────────────────────────────────────────────────────┘ │
|
|
113
|
+
│ │
|
|
114
|
+
└────────────────────────────────────────────────────────────────────────────┘
|
|
360
115
|
```
|
|
361
116
|
|
|
362
117
|
### GitHub Actions Example
|
|
363
118
|
|
|
364
119
|
```yaml
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
120
|
+
jobs:
|
|
121
|
+
e2e-tests:
|
|
122
|
+
strategy:
|
|
123
|
+
matrix:
|
|
124
|
+
shard: [1, 2, 3, 4]
|
|
125
|
+
runs-on: ubuntu-latest
|
|
126
|
+
steps:
|
|
127
|
+
- uses: actions/checkout@v4
|
|
128
|
+
- uses: actions/setup-node@v4
|
|
129
|
+
- run: npm ci
|
|
130
|
+
- name: Run E2E Tests
|
|
131
|
+
env:
|
|
132
|
+
CONNECT_API_KEY: ${{ secrets.CONNECT_API_KEY }}
|
|
133
|
+
run: |
|
|
134
|
+
npx e2e-insights run-shard \
|
|
135
|
+
--shard-index=${{ matrix.shard }} \
|
|
136
|
+
--shard-total=4 \
|
|
137
|
+
--repo=${{ github.repository }} \
|
|
138
|
+
--project=e2e-electron
|
|
376
139
|
```
|
|
377
140
|
|
|
378
141
|
### CLI Options
|
|
379
142
|
|
|
380
|
-
| Option
|
|
381
|
-
|
|
382
|
-
| `--shard-index
|
|
383
|
-
| `--shard-total
|
|
384
|
-
| `--repo
|
|
385
|
-
| `--browser
|
|
386
|
-
| `--fallback
|
|
143
|
+
| Option | Required | Description |
|
|
144
|
+
| --------------- | -------- | -------------------------------------------------------- |
|
|
145
|
+
| `--shard-index` | Yes | Shard index (1-based) |
|
|
146
|
+
| `--shard-total` | Yes | Total number of shards |
|
|
147
|
+
| `--repo` | Yes | Repository identifier (e.g., `posit-dev/positron`) |
|
|
148
|
+
| `--browser` | No | Override browser (auto-inferred from `--project`) |
|
|
149
|
+
| `--fallback` | No | `native` (default) or `fail` if API unavailable |
|
|
387
150
|
|
|
388
|
-
|
|
151
|
+
Additional arguments are passed through to Playwright:
|
|
389
152
|
|
|
390
153
|
```bash
|
|
391
154
|
npx e2e-insights run-shard \
|
|
@@ -393,122 +156,55 @@ npx e2e-insights run-shard \
|
|
|
393
156
|
--workers=4 --retries=2 --project=e2e-electron
|
|
394
157
|
```
|
|
395
158
|
|
|
396
|
-
|
|
159
|
+
### Auto-Detection
|
|
397
160
|
|
|
398
|
-
|
|
161
|
+
**OS:** Detected from runner platform (`mac`, `win`, `ubuntu`, `linux`).
|
|
399
162
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
{
|
|
404
|
-
mode: 'prod', // Sends to connect.posit.it/e2e-test-insights-api (CI only)
|
|
405
|
-
},
|
|
406
|
-
],
|
|
407
|
-
```
|
|
163
|
+
**Browser:**
|
|
164
|
+
- **CLI:** Parses the `--project` flag for keywords (e.g., `e2e-electron` → `electron`). Cannot auto-detect since Playwright hasn't started yet. If no match, `GITHUB_JOB` is used for shard naming.
|
|
165
|
+
- **Reporter:** Auto-detects at runtime from Playwright's `project.use.browserName` config, or infers from project name, or defaults to `electron`.
|
|
408
166
|
|
|
409
|
-
|
|
167
|
+
### Shard Naming & Unique Run IDs
|
|
410
168
|
|
|
411
|
-
|
|
169
|
+
When running sharded tests, each shard needs a unique identifier so results don't overwrite each other in S3. The CLI handles this automatically by setting a `SHARD_NAME` environment variable before running Playwright.
|
|
412
170
|
|
|
413
|
-
|
|
171
|
+
**Format:** `{browser}-{os}-{shardIndex}`
|
|
414
172
|
|
|
415
|
-
|
|
416
|
-
env:
|
|
417
|
-
CONNECT_API_KEY: ${{ secrets.CONNECT_API_KEY }}
|
|
173
|
+
**Example:** A 4-shard matrix on Ubuntu with `--project=e2e-electron` produces:
|
|
418
174
|
```
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
- Commit SHA from `GITHUB_SHA`
|
|
424
|
-
- Workflow name from `GITHUB_WORKFLOW`
|
|
425
|
-
- Job name from `GITHUB_JOB`
|
|
426
|
-
- Run URL constructed from GitHub environment variables
|
|
427
|
-
|
|
428
|
-
## Development
|
|
429
|
-
|
|
430
|
-
```bash
|
|
431
|
-
# Install dependencies
|
|
432
|
-
npm install
|
|
433
|
-
|
|
434
|
-
# Build
|
|
435
|
-
npm run build
|
|
436
|
-
|
|
437
|
-
# Watch mode
|
|
438
|
-
npm run watch
|
|
439
|
-
|
|
440
|
-
# Clean
|
|
441
|
-
npm run clean
|
|
175
|
+
shard 1 → SHARD_NAME=electron-ubuntu-1 → runId: 12345-1-electron-ubuntu-1
|
|
176
|
+
shard 2 → SHARD_NAME=electron-ubuntu-2 → runId: 12345-1-electron-ubuntu-2
|
|
177
|
+
shard 3 → SHARD_NAME=electron-ubuntu-3 → runId: 12345-1-electron-ubuntu-3
|
|
178
|
+
shard 4 → SHARD_NAME=electron-ubuntu-4 → runId: 12345-1-electron-ubuntu-4
|
|
442
179
|
```
|
|
443
180
|
|
|
444
|
-
|
|
181
|
+
Each shard writes to its own S3 path, preventing collisions.
|
|
445
182
|
|
|
446
|
-
|
|
183
|
+
### Fallback Behavior
|
|
447
184
|
|
|
448
|
-
|
|
449
|
-
- **payload.test.ts** - Event payload builders (result.created, run.started, run.completed)
|
|
450
|
-
- **schemas.test.ts** - Zod schema validation
|
|
451
|
-
- **api.test.ts** - API writer with retry logic
|
|
452
|
-
- **utils.test.ts** - Utility functions (ID generation, path handling, browser inference)
|
|
185
|
+
If the API is unavailable or has no historical data, the CLI falls back to Playwright's native sharding:
|
|
453
186
|
|
|
454
187
|
```bash
|
|
455
|
-
|
|
456
|
-
npm test
|
|
457
|
-
|
|
458
|
-
# Watch mode (re-runs on file changes)
|
|
459
|
-
npm run test:watch
|
|
460
|
-
|
|
461
|
-
# With coverage report
|
|
462
|
-
npm run test:coverage
|
|
188
|
+
npx playwright test --shard=1/4
|
|
463
189
|
```
|
|
464
190
|
|
|
465
|
-
###
|
|
191
|
+
### Comparison with Playwright Native
|
|
466
192
|
|
|
467
|
-
|
|
193
|
+
| Aspect | Playwright Native | E2E Insights |
|
|
194
|
+
| ------------------- | ------------------- | ------------------------ |
|
|
195
|
+
| Algorithm | Round-robin by test | LPT by spec file |
|
|
196
|
+
| Balance | Even test count | Even duration |
|
|
197
|
+
| Adaptation | Static | Uses historical data |
|
|
198
|
+
| Platform awareness | No | Yes (OS/browser filter) |
|
|
468
199
|
|
|
469
|
-
|
|
470
|
-
- Globals: enabled (`describe`, `it`, `expect` available without imports)
|
|
471
|
-
- Coverage: v8 provider, excludes test files and index.ts
|
|
200
|
+
---
|
|
472
201
|
|
|
473
202
|
## Publishing
|
|
474
203
|
|
|
475
|
-
To publish a new version to npm:
|
|
476
|
-
|
|
477
|
-
### Prerequisites
|
|
478
|
-
|
|
479
|
-
- npm account with access to the `@posit-dev` organization
|
|
480
|
-
- Logged in via `npm login`
|
|
481
|
-
|
|
482
|
-
### Publish Steps
|
|
483
|
-
|
|
484
204
|
```bash
|
|
485
|
-
cd packages/playwright-reporter
|
|
486
|
-
|
|
487
|
-
# 1. Ensure tests pass
|
|
488
205
|
npm test
|
|
489
|
-
|
|
490
|
-
# 2. Build the package
|
|
491
206
|
npm run build
|
|
492
|
-
|
|
493
|
-
# 3. Preview what will be published
|
|
494
|
-
npm pack --dry-run
|
|
495
|
-
|
|
496
|
-
# 4. Bump version (choose one)
|
|
497
|
-
npm version patch # 0.1.0 → 0.1.1 (bug fixes)
|
|
498
|
-
npm version minor # 0.1.0 → 0.2.0 (new features)
|
|
499
|
-
npm version major # 0.1.0 → 1.0.0 (breaking changes)
|
|
500
|
-
|
|
501
|
-
# 5. Publish to npm (scoped packages require --access public)
|
|
207
|
+
npm version patch # or minor/major
|
|
502
208
|
npm publish --access public
|
|
503
|
-
|
|
504
|
-
# 6. Push the version commit and tag
|
|
505
209
|
git push && git push --tags
|
|
506
210
|
```
|
|
507
|
-
|
|
508
|
-
### Updating in Consumer Repos
|
|
509
|
-
|
|
510
|
-
After publishing, update the package in repos that use it:
|
|
511
|
-
|
|
512
|
-
```bash
|
|
513
|
-
npm update @midleman/playwright-reporter
|
|
514
|
-
```
|
package/dist/cli/run-shard.d.ts
CHANGED
|
@@ -36,6 +36,14 @@ export declare function normalizeRepoId(repo: string): string;
|
|
|
36
36
|
* - Over 60 min: "1h 56m"
|
|
37
37
|
*/
|
|
38
38
|
export declare function formatDuration(ms: number): string;
|
|
39
|
+
/**
|
|
40
|
+
* Format duration in compact form (no spaces)
|
|
41
|
+
*
|
|
42
|
+
* - Under 60s: "30s"
|
|
43
|
+
* - 1-60 min: "5m30s" or "5m" if no seconds
|
|
44
|
+
* - Over 60 min: "1h56m"
|
|
45
|
+
*/
|
|
46
|
+
export declare function formatDurationCompact(ms: number): string;
|
|
39
47
|
export interface ShardAssignment {
|
|
40
48
|
shard_index: number;
|
|
41
49
|
num_shards: number;
|
|
@@ -46,8 +54,11 @@ export interface ShardAssignment {
|
|
|
46
54
|
data_quality?: {
|
|
47
55
|
specs_with_history: number;
|
|
48
56
|
specs_without_history: number;
|
|
57
|
+
specs_missing_history: string[];
|
|
49
58
|
};
|
|
50
59
|
shard_balance?: {
|
|
60
|
+
all_shard_durations_ms: number[];
|
|
61
|
+
all_shard_spec_counts: number[];
|
|
51
62
|
variance_pct: number;
|
|
52
63
|
};
|
|
53
64
|
fallback_reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-shard.d.ts","sourceRoot":"","sources":["../../src/cli/run-shard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAOD;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAYjC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAkBjD;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE;QACX,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"run-shard.d.ts","sourceRoot":"","sources":["../../src/cli/run-shard.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run-shard.js
CHANGED
|
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.detectOS = detectOS;
|
|
13
13
|
exports.normalizeRepoId = normalizeRepoId;
|
|
14
14
|
exports.formatDuration = formatDuration;
|
|
15
|
+
exports.formatDurationCompact = formatDurationCompact;
|
|
15
16
|
exports.parseRunShardArgs = parseRunShardArgs;
|
|
16
17
|
exports.parsePlaywrightListOutput = parsePlaywrightListOutput;
|
|
17
18
|
exports.discoverSpecs = discoverSpecs;
|
|
@@ -85,6 +86,26 @@ function formatDuration(ms) {
|
|
|
85
86
|
// Minutes only
|
|
86
87
|
return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;
|
|
87
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Format duration in compact form (no spaces)
|
|
91
|
+
*
|
|
92
|
+
* - Under 60s: "30s"
|
|
93
|
+
* - 1-60 min: "5m30s" or "5m" if no seconds
|
|
94
|
+
* - Over 60 min: "1h56m"
|
|
95
|
+
*/
|
|
96
|
+
function formatDurationCompact(ms) {
|
|
97
|
+
const totalSeconds = Math.round(ms / 1000);
|
|
98
|
+
if (totalSeconds < 60) {
|
|
99
|
+
return `${totalSeconds}s`;
|
|
100
|
+
}
|
|
101
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
102
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
103
|
+
const seconds = totalSeconds % 60;
|
|
104
|
+
if (hours > 0) {
|
|
105
|
+
return minutes > 0 ? `${hours}h${minutes}m` : `${hours}h`;
|
|
106
|
+
}
|
|
107
|
+
return seconds > 0 ? `${minutes}m${seconds}s` : `${minutes}m`;
|
|
108
|
+
}
|
|
88
109
|
// ============================================================================
|
|
89
110
|
// Argument Parsing
|
|
90
111
|
// ============================================================================
|
|
@@ -458,13 +479,29 @@ async function runShard(options) {
|
|
|
458
479
|
const parallelMs = workers > 1 ? Math.round(sequentialMs / workers) : sequentialMs;
|
|
459
480
|
const adjustedMs = Math.round(parallelMs * OVERHEAD_FACTOR);
|
|
460
481
|
estDuration = formatDuration(adjustedMs);
|
|
461
|
-
|
|
462
|
-
console.log(` Assigned ${assignment.specs.length} specs (est. ~${estDuration}${workersNote})`);
|
|
463
|
-
if (assignment.data_quality) {
|
|
464
|
-
console.log(` Data quality: ${assignment.data_quality.specs_with_history}/${specs.length} specs have history`);
|
|
465
|
-
}
|
|
482
|
+
// Show shard balance first (overall view)
|
|
466
483
|
if (assignment.shard_balance) {
|
|
467
|
-
|
|
484
|
+
const { all_shard_durations_ms, all_shard_spec_counts, variance_pct } = assignment.shard_balance;
|
|
485
|
+
console.log(` Shard balance: ${variance_pct}%`);
|
|
486
|
+
all_shard_durations_ms.forEach((ms, i) => {
|
|
487
|
+
const duration = formatDurationCompact(ms);
|
|
488
|
+
const specCount = all_shard_spec_counts?.[i] ?? '?';
|
|
489
|
+
console.log(` ${i + 1} → ${duration} (${specCount} specs)`);
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
// Only show data quality for first shard (same for all shards)
|
|
493
|
+
if (assignment.data_quality && assignment.shard_index === 0) {
|
|
494
|
+
const { specs_with_history, specs_without_history, specs_missing_history } = assignment.data_quality;
|
|
495
|
+
console.log(`📊 Data quality: ${specs_with_history}/${specs.length} specs have history`);
|
|
496
|
+
if (specs_missing_history && specs_missing_history.length > 0) {
|
|
497
|
+
console.log(` Missing history:`);
|
|
498
|
+
for (const spec of specs_missing_history) {
|
|
499
|
+
console.log(` - ${spec}`);
|
|
500
|
+
}
|
|
501
|
+
if (specs_without_history > specs_missing_history.length) {
|
|
502
|
+
console.log(` ... and ${specs_without_history - specs_missing_history.length} more`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
468
505
|
}
|
|
469
506
|
}
|
|
470
507
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-shard.js","sourceRoot":"","sources":["../../src/cli/run-shard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-shard.js","sourceRoot":"","sources":["../../src/cli/run-shard.ts"],"names":[],"mappings":"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"}
|