@midleman/playwright-reporter 0.41.1 → 0.42.0
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/dist/cli/run-shard.d.ts +23 -6
- package/dist/cli/run-shard.d.ts.map +1 -1
- package/dist/cli/run-shard.js +132 -67
- package/dist/cli/run-shard.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/run-shard.d.ts
CHANGED
|
@@ -11,23 +11,32 @@ export interface RunShardOptions {
|
|
|
11
11
|
os?: string;
|
|
12
12
|
browser?: string;
|
|
13
13
|
branch?: string;
|
|
14
|
-
fallback?:
|
|
14
|
+
fallback?: 'native' | 'fail';
|
|
15
15
|
playwrightArgs?: string[];
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Normalize repo identifier for API
|
|
19
|
+
*
|
|
20
|
+
* GitHub provides "owner/repo" format, but the cache uses just "repo".
|
|
21
|
+
* This strips the owner prefix if present.
|
|
22
|
+
*/
|
|
23
|
+
export declare function normalizeRepoId(repo: string): string;
|
|
17
24
|
export interface ShardAssignment {
|
|
18
25
|
shard_index: number;
|
|
19
26
|
num_shards: number;
|
|
20
|
-
specs: string[];
|
|
21
|
-
estimated_duration_ms
|
|
22
|
-
total_specs_assigned
|
|
23
|
-
total_specs_all_shards
|
|
24
|
-
data_quality
|
|
27
|
+
specs: string[] | null;
|
|
28
|
+
estimated_duration_ms?: number;
|
|
29
|
+
total_specs_assigned?: number;
|
|
30
|
+
total_specs_all_shards?: number;
|
|
31
|
+
data_quality?: {
|
|
25
32
|
specs_with_history: number;
|
|
26
33
|
specs_without_history: number;
|
|
27
34
|
};
|
|
28
35
|
shard_balance?: {
|
|
29
36
|
variance_pct: number;
|
|
30
37
|
};
|
|
38
|
+
fallback_reason?: string;
|
|
39
|
+
recommendation?: string;
|
|
31
40
|
}
|
|
32
41
|
interface FetchShardParams {
|
|
33
42
|
specs: string[];
|
|
@@ -41,6 +50,14 @@ interface FetchShardParams {
|
|
|
41
50
|
export declare function parseRunShardArgs(args: string[]): RunShardOptions;
|
|
42
51
|
/**
|
|
43
52
|
* Parse the JSON output from `playwright test --list --reporter=json`
|
|
53
|
+
*
|
|
54
|
+
* Playwright's JSON output has:
|
|
55
|
+
* - config.configFile: absolute path to playwright.config.ts (repo root)
|
|
56
|
+
* - config.rootDir: absolute path to test directory
|
|
57
|
+
* - suites[].file: filename relative to rootDir
|
|
58
|
+
*
|
|
59
|
+
* We need to return paths relative to repo root (where config lives),
|
|
60
|
+
* which matches how the reporter stores specPath.
|
|
44
61
|
*/
|
|
45
62
|
export declare function parsePlaywrightListOutput(output: string): string[];
|
|
46
63
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-shard.d.ts","sourceRoot":"","sources":["../../src/cli/run-shard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
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,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAKD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQpD;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;KACjC,CAAC;IACF,aAAa,CAAC,EAAE;QACZ,YAAY,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,gBAAgB;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAiBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CA2EjE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAsClE;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA+BvD;AAMD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CA4C1B;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAElF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAEV;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAenE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAuBzE;AAMD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0FxE"}
|
package/dist/cli/run-shard.js
CHANGED
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
* Discovers spec files, fetches optimal shard assignment from API,
|
|
6
6
|
* and runs Playwright with only the assigned specs.
|
|
7
7
|
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.normalizeRepoId = normalizeRepoId;
|
|
9
13
|
exports.parseRunShardArgs = parseRunShardArgs;
|
|
10
14
|
exports.parsePlaywrightListOutput = parsePlaywrightListOutput;
|
|
11
15
|
exports.discoverSpecs = discoverSpecs;
|
|
@@ -16,55 +20,71 @@ exports.runPlaywright = runPlaywright;
|
|
|
16
20
|
exports.extractBrowserFromArgs = extractBrowserFromArgs;
|
|
17
21
|
exports.runShard = runShard;
|
|
18
22
|
const child_process_1 = require("child_process");
|
|
23
|
+
const path_1 = __importDefault(require("path"));
|
|
19
24
|
const utils_1 = require("../utils");
|
|
20
25
|
// Hardcoded API URL - only one production environment
|
|
21
|
-
const API_URL =
|
|
26
|
+
const API_URL = 'https://connect.posit.it/e2e-test-insights-api';
|
|
27
|
+
/**
|
|
28
|
+
* Normalize repo identifier for API
|
|
29
|
+
*
|
|
30
|
+
* GitHub provides "owner/repo" format, but the cache uses just "repo".
|
|
31
|
+
* This strips the owner prefix if present.
|
|
32
|
+
*/
|
|
33
|
+
function normalizeRepoId(repo) {
|
|
34
|
+
// If repo contains "/", take just the repo name (after the last /)
|
|
35
|
+
const parts = repo.split('/');
|
|
36
|
+
const repoName = parts[parts.length - 1];
|
|
37
|
+
if (!repoName) {
|
|
38
|
+
throw new Error(`Invalid repo identifier: ${repo}`);
|
|
39
|
+
}
|
|
40
|
+
return repoName;
|
|
41
|
+
}
|
|
22
42
|
// ============================================================================
|
|
23
43
|
// Argument Parsing
|
|
24
44
|
// ============================================================================
|
|
25
45
|
// Args that belong to our CLI (everything else passes through to Playwright)
|
|
26
46
|
const OUR_ARG_PREFIXES = [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
47
|
+
'--shard-index=',
|
|
48
|
+
'--shard-total=',
|
|
49
|
+
'--repo=',
|
|
50
|
+
'--os=',
|
|
51
|
+
'--browser=',
|
|
52
|
+
'--branch=',
|
|
53
|
+
'--fallback=',
|
|
34
54
|
];
|
|
35
55
|
function parseRunShardArgs(args) {
|
|
36
56
|
const options = {
|
|
37
|
-
fallback:
|
|
57
|
+
fallback: 'native',
|
|
38
58
|
playwrightArgs: [],
|
|
39
59
|
};
|
|
40
60
|
// Find the -- separator for explicit pass-through args
|
|
41
|
-
const separatorIndex = args.indexOf(
|
|
61
|
+
const separatorIndex = args.indexOf('--');
|
|
42
62
|
const ourArgs = separatorIndex >= 0 ? args.slice(0, separatorIndex) : args;
|
|
43
63
|
const explicitPlaywrightArgs = separatorIndex >= 0 ? args.slice(separatorIndex + 1) : [];
|
|
44
64
|
// Collect unrecognized args to pass through to Playwright
|
|
45
65
|
const unrecognizedArgs = [];
|
|
46
66
|
for (const arg of ourArgs) {
|
|
47
|
-
if (arg.startsWith(
|
|
48
|
-
options.shardIndex = parseInt(arg.split(
|
|
67
|
+
if (arg.startsWith('--shard-index=')) {
|
|
68
|
+
options.shardIndex = parseInt(arg.split('=')[1], 10);
|
|
49
69
|
}
|
|
50
|
-
else if (arg.startsWith(
|
|
51
|
-
options.shardTotal = parseInt(arg.split(
|
|
70
|
+
else if (arg.startsWith('--shard-total=')) {
|
|
71
|
+
options.shardTotal = parseInt(arg.split('=')[1], 10);
|
|
52
72
|
}
|
|
53
|
-
else if (arg.startsWith(
|
|
54
|
-
options.repo = arg.split(
|
|
73
|
+
else if (arg.startsWith('--repo=')) {
|
|
74
|
+
options.repo = arg.split('=')[1];
|
|
55
75
|
}
|
|
56
|
-
else if (arg.startsWith(
|
|
57
|
-
options.os = arg.split(
|
|
76
|
+
else if (arg.startsWith('--os=')) {
|
|
77
|
+
options.os = arg.split('=')[1];
|
|
58
78
|
}
|
|
59
|
-
else if (arg.startsWith(
|
|
60
|
-
options.browser = arg.split(
|
|
79
|
+
else if (arg.startsWith('--browser=')) {
|
|
80
|
+
options.browser = arg.split('=')[1];
|
|
61
81
|
}
|
|
62
|
-
else if (arg.startsWith(
|
|
63
|
-
options.branch = arg.split(
|
|
82
|
+
else if (arg.startsWith('--branch=')) {
|
|
83
|
+
options.branch = arg.split('=')[1];
|
|
64
84
|
}
|
|
65
|
-
else if (arg.startsWith(
|
|
66
|
-
const value = arg.split(
|
|
67
|
-
if (value ===
|
|
85
|
+
else if (arg.startsWith('--fallback=')) {
|
|
86
|
+
const value = arg.split('=')[1];
|
|
87
|
+
if (value === 'native' || value === 'fail') {
|
|
68
88
|
options.fallback = value;
|
|
69
89
|
}
|
|
70
90
|
}
|
|
@@ -79,24 +99,24 @@ function parseRunShardArgs(args) {
|
|
|
79
99
|
options.playwrightArgs = [...unrecognizedArgs, ...explicitPlaywrightArgs];
|
|
80
100
|
// Validate required arguments
|
|
81
101
|
if (options.shardIndex === undefined) {
|
|
82
|
-
throw new Error(
|
|
102
|
+
throw new Error('Missing required argument: --shard-index');
|
|
83
103
|
}
|
|
84
104
|
if (options.shardTotal === undefined) {
|
|
85
|
-
throw new Error(
|
|
105
|
+
throw new Error('Missing required argument: --shard-total');
|
|
86
106
|
}
|
|
87
107
|
if (!options.repo) {
|
|
88
|
-
throw new Error(
|
|
108
|
+
throw new Error('Missing required argument: --repo');
|
|
89
109
|
}
|
|
90
110
|
// Validate numeric values are valid (parseInt returns NaN for invalid input)
|
|
91
111
|
if (Number.isNaN(options.shardIndex)) {
|
|
92
|
-
throw new Error(
|
|
112
|
+
throw new Error('--shard-index must be a valid number');
|
|
93
113
|
}
|
|
94
114
|
if (Number.isNaN(options.shardTotal)) {
|
|
95
|
-
throw new Error(
|
|
115
|
+
throw new Error('--shard-total must be a valid number');
|
|
96
116
|
}
|
|
97
117
|
// Validate shardTotal is positive
|
|
98
118
|
if (options.shardTotal < 1) {
|
|
99
|
-
throw new Error(
|
|
119
|
+
throw new Error('--shard-total must be at least 1');
|
|
100
120
|
}
|
|
101
121
|
// Validate shard index range (1-based)
|
|
102
122
|
if (options.shardIndex < 1 || options.shardIndex > options.shardTotal) {
|
|
@@ -109,11 +129,44 @@ function parseRunShardArgs(args) {
|
|
|
109
129
|
// ============================================================================
|
|
110
130
|
/**
|
|
111
131
|
* Parse the JSON output from `playwright test --list --reporter=json`
|
|
132
|
+
*
|
|
133
|
+
* Playwright's JSON output has:
|
|
134
|
+
* - config.configFile: absolute path to playwright.config.ts (repo root)
|
|
135
|
+
* - config.rootDir: absolute path to test directory
|
|
136
|
+
* - suites[].file: filename relative to rootDir
|
|
137
|
+
*
|
|
138
|
+
* We need to return paths relative to repo root (where config lives),
|
|
139
|
+
* which matches how the reporter stores specPath.
|
|
112
140
|
*/
|
|
113
141
|
function parsePlaywrightListOutput(output) {
|
|
114
142
|
try {
|
|
115
143
|
const data = JSON.parse(output);
|
|
116
|
-
const
|
|
144
|
+
const suites = data.suites || [];
|
|
145
|
+
if (suites.length === 0)
|
|
146
|
+
return [];
|
|
147
|
+
// Compute path prefix from config (if available)
|
|
148
|
+
let pathPrefix = '';
|
|
149
|
+
if (data.config?.configFile && data.config?.rootDir) {
|
|
150
|
+
const repoRoot = path_1.default.dirname(data.config.configFile);
|
|
151
|
+
const testDir = data.config.rootDir;
|
|
152
|
+
// Get the relative path from repo root to test directory
|
|
153
|
+
pathPrefix = path_1.default.relative(repoRoot, testDir);
|
|
154
|
+
// Normalize to forward slashes for cross-platform consistency
|
|
155
|
+
pathPrefix = pathPrefix.replace(/\\/g, '/');
|
|
156
|
+
// Warn if testDir is outside repo root (likely misconfiguration)
|
|
157
|
+
if (pathPrefix.startsWith('..')) {
|
|
158
|
+
console.warn(`⚠️ Test directory appears to be outside repo root. ` +
|
|
159
|
+
`Spec paths may not match historical data. ` +
|
|
160
|
+
`Check that testDir in playwright.config.ts is inside the repository.`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const files = suites.map((s) => {
|
|
164
|
+
const file = s.file;
|
|
165
|
+
if (!pathPrefix)
|
|
166
|
+
return file;
|
|
167
|
+
// Combine prefix with file, normalize slashes
|
|
168
|
+
return `${pathPrefix}/${file}`.replace(/\\/g, '/');
|
|
169
|
+
});
|
|
117
170
|
// Dedupe and sort for deterministic output
|
|
118
171
|
return [...new Set(files)].sort();
|
|
119
172
|
}
|
|
@@ -126,19 +179,19 @@ function parsePlaywrightListOutput(output) {
|
|
|
126
179
|
*/
|
|
127
180
|
async function discoverSpecs() {
|
|
128
181
|
return new Promise((resolve, reject) => {
|
|
129
|
-
const proc = (0, child_process_1.spawn)(
|
|
130
|
-
shell: process.platform ===
|
|
131
|
-
stdio: [
|
|
182
|
+
const proc = (0, child_process_1.spawn)('npx', ['playwright', 'test', '--list', '--reporter=json'], {
|
|
183
|
+
shell: process.platform === 'win32', // Required on Windows for .cmd files
|
|
184
|
+
stdio: ['inherit', 'pipe', 'pipe'],
|
|
132
185
|
});
|
|
133
|
-
let stdout =
|
|
134
|
-
let stderr =
|
|
135
|
-
proc.stdout.on(
|
|
186
|
+
let stdout = '';
|
|
187
|
+
let stderr = '';
|
|
188
|
+
proc.stdout.on('data', (data) => {
|
|
136
189
|
stdout += data.toString();
|
|
137
190
|
});
|
|
138
|
-
proc.stderr.on(
|
|
191
|
+
proc.stderr.on('data', (data) => {
|
|
139
192
|
stderr += data.toString();
|
|
140
193
|
});
|
|
141
|
-
proc.on(
|
|
194
|
+
proc.on('close', (code) => {
|
|
142
195
|
if (code !== 0) {
|
|
143
196
|
reject(new Error(`playwright test --list failed: ${stderr}`));
|
|
144
197
|
return;
|
|
@@ -146,7 +199,7 @@ async function discoverSpecs() {
|
|
|
146
199
|
const specs = parsePlaywrightListOutput(stdout);
|
|
147
200
|
resolve(specs);
|
|
148
201
|
});
|
|
149
|
-
proc.on(
|
|
202
|
+
proc.on('error', (err) => {
|
|
150
203
|
reject(new Error(`Failed to spawn playwright: ${err.message}`));
|
|
151
204
|
});
|
|
152
205
|
});
|
|
@@ -161,17 +214,17 @@ async function fetchShardAssignment(apiUrl, params) {
|
|
|
161
214
|
// Build query parameters (API uses GET with query params)
|
|
162
215
|
const queryParams = new URLSearchParams({
|
|
163
216
|
repo_id: params.repo,
|
|
164
|
-
specs: params.specs.join(
|
|
217
|
+
specs: params.specs.join(','), // API expects comma-separated string
|
|
165
218
|
num_shards: String(params.numShards),
|
|
166
219
|
shard_index: String(params.shardIndex),
|
|
167
220
|
});
|
|
168
221
|
// Only include optional fields if defined
|
|
169
222
|
if (params.os)
|
|
170
|
-
queryParams.set(
|
|
223
|
+
queryParams.set('os', params.os);
|
|
171
224
|
if (params.browser)
|
|
172
|
-
queryParams.set(
|
|
225
|
+
queryParams.set('browser', params.browser);
|
|
173
226
|
if (params.branch)
|
|
174
|
-
queryParams.set(
|
|
227
|
+
queryParams.set('branch', params.branch);
|
|
175
228
|
const url = `${apiUrl}/shards/compute?${queryParams.toString()}`;
|
|
176
229
|
// Warn if URL is very long (may exceed server limits)
|
|
177
230
|
const MAX_SAFE_URL_LENGTH = 4000; // Conservative limit (servers vary, often 8KB)
|
|
@@ -182,16 +235,16 @@ async function fetchShardAssignment(apiUrl, params) {
|
|
|
182
235
|
const headers = {};
|
|
183
236
|
const apiKey = process.env.CONNECT_API_KEY || process.env.E2E_CONNECT_APIKEY;
|
|
184
237
|
if (apiKey) {
|
|
185
|
-
headers[
|
|
238
|
+
headers['Authorization'] = `Key ${apiKey}`;
|
|
186
239
|
}
|
|
187
240
|
const response = await fetch(url, {
|
|
188
|
-
method:
|
|
241
|
+
method: 'GET',
|
|
189
242
|
headers,
|
|
190
243
|
});
|
|
191
244
|
if (!response.ok) {
|
|
192
245
|
const text = await response.text();
|
|
193
246
|
// Truncate long error responses (e.g., HTML error pages)
|
|
194
|
-
const truncated = text.length > 200 ? text.slice(0, 200) +
|
|
247
|
+
const truncated = text.length > 200 ? text.slice(0, 200) + '...' : text;
|
|
195
248
|
throw new Error(`API error: ${response.status} ${response.statusText} - ${truncated}`);
|
|
196
249
|
}
|
|
197
250
|
return response.json();
|
|
@@ -203,27 +256,27 @@ async function fetchShardAssignment(apiUrl, params) {
|
|
|
203
256
|
* Build Playwright command arguments for assigned specs
|
|
204
257
|
*/
|
|
205
258
|
function buildPlaywrightArgs(specs, extraArgs) {
|
|
206
|
-
return [
|
|
259
|
+
return ['test', ...specs, ...extraArgs];
|
|
207
260
|
}
|
|
208
261
|
/**
|
|
209
262
|
* Build Playwright command arguments for native sharding fallback
|
|
210
263
|
*/
|
|
211
264
|
function buildNativeShardingArgs(shardIndex, shardTotal, extraArgs) {
|
|
212
|
-
return [
|
|
265
|
+
return ['test', `--shard=${shardIndex}/${shardTotal}`, ...extraArgs];
|
|
213
266
|
}
|
|
214
267
|
/**
|
|
215
268
|
* Run Playwright with the given arguments
|
|
216
269
|
*/
|
|
217
270
|
async function runPlaywright(args) {
|
|
218
271
|
return new Promise((resolve) => {
|
|
219
|
-
const proc = (0, child_process_1.spawn)(
|
|
220
|
-
shell: process.platform ===
|
|
221
|
-
stdio:
|
|
272
|
+
const proc = (0, child_process_1.spawn)('npx', ['playwright', ...args], {
|
|
273
|
+
shell: process.platform === 'win32', // Required on Windows for .cmd files
|
|
274
|
+
stdio: 'inherit',
|
|
222
275
|
});
|
|
223
|
-
proc.on(
|
|
276
|
+
proc.on('close', (code) => {
|
|
224
277
|
resolve(code ?? 1);
|
|
225
278
|
});
|
|
226
|
-
proc.on(
|
|
279
|
+
proc.on('error', () => {
|
|
227
280
|
resolve(1);
|
|
228
281
|
});
|
|
229
282
|
});
|
|
@@ -242,13 +295,13 @@ async function runPlaywright(args) {
|
|
|
242
295
|
*/
|
|
243
296
|
function extractBrowserFromArgs(args) {
|
|
244
297
|
// Match --project=value or --project value (but not --project-config, etc.)
|
|
245
|
-
const projectArg = args.find((arg) => arg ===
|
|
298
|
+
const projectArg = args.find((arg) => arg === '--project' || arg.startsWith('--project='));
|
|
246
299
|
if (!projectArg) {
|
|
247
300
|
return undefined;
|
|
248
301
|
}
|
|
249
302
|
let projectName;
|
|
250
|
-
if (projectArg.includes(
|
|
251
|
-
projectName = projectArg.split(
|
|
303
|
+
if (projectArg.includes('=')) {
|
|
304
|
+
projectName = projectArg.split('=')[1];
|
|
252
305
|
}
|
|
253
306
|
else {
|
|
254
307
|
const nextIndex = args.indexOf(projectArg) + 1;
|
|
@@ -276,10 +329,10 @@ async function runShard(options) {
|
|
|
276
329
|
}
|
|
277
330
|
catch (error) {
|
|
278
331
|
console.error(`❌ Failed to discover specs: ${error}`);
|
|
279
|
-
if (options.fallback ===
|
|
332
|
+
if (options.fallback === 'fail') {
|
|
280
333
|
return 1;
|
|
281
334
|
}
|
|
282
|
-
console.log(`\n⚠️
|
|
335
|
+
console.log(`\n⚠️ FALLBACK: Using native Playwright sharding (--shard=${options.shardIndex}/${options.shardTotal})`);
|
|
283
336
|
console.log(` Reason: Spec discovery failed`);
|
|
284
337
|
const args = buildNativeShardingArgs(options.shardIndex, options.shardTotal, extraArgs);
|
|
285
338
|
return runPlaywright(args);
|
|
@@ -290,30 +343,42 @@ async function runShard(options) {
|
|
|
290
343
|
}
|
|
291
344
|
console.log(`🎯 Getting assignment for shard ${options.shardIndex}/${options.shardTotal}...`);
|
|
292
345
|
let assignment;
|
|
346
|
+
// Normalize repo ID (strip owner prefix if present: "owner/repo" -> "repo")
|
|
347
|
+
const repoId = normalizeRepoId(options.repo);
|
|
293
348
|
try {
|
|
294
349
|
assignment = await fetchShardAssignment(API_URL, {
|
|
295
350
|
specs,
|
|
296
351
|
shardIndex: options.shardIndex - 1, // Convert to 0-based for API
|
|
297
352
|
numShards: options.shardTotal,
|
|
298
|
-
repo:
|
|
353
|
+
repo: repoId,
|
|
299
354
|
os: options.os,
|
|
300
355
|
browser,
|
|
301
356
|
branch: options.branch,
|
|
302
357
|
});
|
|
303
|
-
|
|
358
|
+
// Check if API returned a fallback recommendation (no historical data)
|
|
359
|
+
if (assignment.recommendation === 'use_native_sharding' || !assignment.specs) {
|
|
360
|
+
console.log(` No historical data available`);
|
|
361
|
+
console.log(`\n⚠️ FALLBACK: Using native Playwright sharding (--shard=${options.shardIndex}/${options.shardTotal})`);
|
|
362
|
+
console.log(` Reason: ${assignment.fallback_reason || 'No spec assignments returned'}`);
|
|
363
|
+
const args = buildNativeShardingArgs(options.shardIndex, options.shardTotal, extraArgs);
|
|
364
|
+
return runPlaywright(args);
|
|
365
|
+
}
|
|
366
|
+
const estSeconds = Math.round((assignment.estimated_duration_ms || 0) / 1000);
|
|
304
367
|
console.log(` Assigned ${assignment.specs.length} specs (est. ${estSeconds}s)`);
|
|
305
|
-
|
|
368
|
+
if (assignment.data_quality) {
|
|
369
|
+
console.log(` Data quality: ${assignment.data_quality.specs_with_history}/${specs.length} specs have history`);
|
|
370
|
+
}
|
|
306
371
|
if (assignment.shard_balance) {
|
|
307
372
|
console.log(` Shard balance variance: ${assignment.shard_balance.variance_pct}%`);
|
|
308
373
|
}
|
|
309
374
|
}
|
|
310
375
|
catch (error) {
|
|
311
|
-
console.warn(`⚠️
|
|
312
|
-
if (options.fallback ===
|
|
376
|
+
console.warn(`⚠️ API unavailable: ${error}`);
|
|
377
|
+
if (options.fallback === 'fail') {
|
|
313
378
|
console.error(`❌ Fallback disabled - exiting`);
|
|
314
379
|
return 1;
|
|
315
380
|
}
|
|
316
|
-
console.log(`\n⚠️
|
|
381
|
+
console.log(`\n⚠️ FALLBACK: Using native Playwright sharding (--shard=${options.shardIndex}/${options.shardTotal})`);
|
|
317
382
|
console.log(` Reason: API request failed`);
|
|
318
383
|
const args = buildNativeShardingArgs(options.shardIndex, options.shardTotal, extraArgs);
|
|
319
384
|
return runPlaywright(args);
|
|
@@ -330,7 +395,7 @@ async function runShard(options) {
|
|
|
330
395
|
if (require.main === module) {
|
|
331
396
|
const args = process.argv.slice(2);
|
|
332
397
|
// Handle help
|
|
333
|
-
if (args.includes(
|
|
398
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
334
399
|
console.log(`
|
|
335
400
|
e2e-insights run-shard - Predictive test sharding
|
|
336
401
|
|
|
@@ -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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"}
|