@runa-ai/runa-cli 0.5.27 → 0.5.28
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/commands/ci/machine/contract.d.ts +6 -0
- package/dist/commands/ci/machine/contract.d.ts.map +1 -1
- package/dist/commands/ci/machine/formatters/sections/format-helpers.d.ts +1 -0
- package/dist/commands/ci/machine/formatters/sections/format-helpers.d.ts.map +1 -1
- package/dist/commands/ci/machine/helpers.d.ts +17 -1
- package/dist/commands/ci/machine/helpers.d.ts.map +1 -1
- package/dist/commands/ci/machine/machine.d.ts +2 -0
- package/dist/commands/ci/machine/machine.d.ts.map +1 -1
- package/dist/commands/ci/utils/test-parallel.d.ts +8 -0
- package/dist/commands/ci/utils/test-parallel.d.ts.map +1 -1
- package/dist/index.js +45 -5
- package/package.json +2 -2
|
@@ -226,6 +226,8 @@ export declare const LayerResultSchema: z.ZodObject<{
|
|
|
226
226
|
exitCode: z.ZodNumber;
|
|
227
227
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
228
228
|
total: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
failed: z.ZodOptional<z.ZodNumber>;
|
|
230
|
+
flaky: z.ZodOptional<z.ZodNumber>;
|
|
229
231
|
logPath: z.ZodOptional<z.ZodString>;
|
|
230
232
|
error: z.ZodOptional<z.ZodString>;
|
|
231
233
|
}, z.core.$strip>;
|
|
@@ -283,6 +285,8 @@ export declare const LayerSummarySchema: z.ZodObject<{
|
|
|
283
285
|
exitCode: z.ZodNumber;
|
|
284
286
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
285
287
|
total: z.ZodOptional<z.ZodNumber>;
|
|
288
|
+
failed: z.ZodOptional<z.ZodNumber>;
|
|
289
|
+
flaky: z.ZodOptional<z.ZodNumber>;
|
|
286
290
|
logPath: z.ZodOptional<z.ZodString>;
|
|
287
291
|
description: z.ZodOptional<z.ZodString>;
|
|
288
292
|
level: z.ZodOptional<z.ZodEnum<{
|
|
@@ -332,6 +336,8 @@ export declare const CiOutputSchema: z.ZodObject<{
|
|
|
332
336
|
exitCode: z.ZodNumber;
|
|
333
337
|
passed: z.ZodOptional<z.ZodNumber>;
|
|
334
338
|
total: z.ZodOptional<z.ZodNumber>;
|
|
339
|
+
failed: z.ZodOptional<z.ZodNumber>;
|
|
340
|
+
flaky: z.ZodOptional<z.ZodNumber>;
|
|
335
341
|
logPath: z.ZodOptional<z.ZodString>;
|
|
336
342
|
description: z.ZodOptional<z.ZodString>;
|
|
337
343
|
level: z.ZodOptional<z.ZodEnum<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY;;;EAAsC,CAAC;AAChE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,oBAAoB;;;EAAsC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,aAAa;;;EAA0B,CAAC;AACrD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,cAAc;;;EAA4B,CAAC;AACxD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc;;;;EAA6C,CAAC;AACzE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,gBAAgB;;;;;EAAqD,CAAC;AACnF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;;;;EAAqD,CAAC;AACpF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAM5D;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsFV,CAAC;AAEjB,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAMpD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;iBAU5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAU9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAKnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export declare function getStatusIcon(status: string | undefined): string;
|
|
|
25
25
|
export declare const LAYER_NAMES: Record<number, string>;
|
|
26
26
|
/**
|
|
27
27
|
* Format a single layer result line.
|
|
28
|
+
* Shows breakdown: passed, flaky, failed when available.
|
|
28
29
|
*/
|
|
29
30
|
export declare function formatSingleLayer(layer: number, result: LayerResult | undefined): string;
|
|
30
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/ci/machine/formatters/sections/format-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWhE;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM9C,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../../../../../src/commands/ci/machine/formatters/sections/format-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOjD;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWhE;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM9C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CA0BxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,EAAE,CA8BtF;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBrE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,EAAE,CAkCX;AAOD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAS5F;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,sBAAsB,EAAE,MAAM,EAAE,GAC/B,MAAM,EAAE,CA6BV"}
|
|
@@ -31,10 +31,21 @@ export declare function getLayersForCorePhase(selectedLayers: number[], mode: st
|
|
|
31
31
|
export declare function hasE2ELayer(selectedLayers: number[]): boolean;
|
|
32
32
|
/** Layer result status type */
|
|
33
33
|
export type LayerStatus = 'passed' | 'failed' | 'skipped' | 'timeout';
|
|
34
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Layer result record type.
|
|
36
|
+
* Includes test count fields for accurate reporting in GitHub comments.
|
|
37
|
+
*/
|
|
35
38
|
export type LayerResults = Record<number, {
|
|
36
39
|
status: LayerStatus;
|
|
37
40
|
exitCode: number;
|
|
41
|
+
/** Number of passed tests */
|
|
42
|
+
passed?: number;
|
|
43
|
+
/** Total number of tests */
|
|
44
|
+
total?: number;
|
|
45
|
+
/** Number of tests that failed all attempts */
|
|
46
|
+
failed?: number;
|
|
47
|
+
/** Number of flaky tests (failed initially but passed on retry) */
|
|
48
|
+
flaky?: number;
|
|
38
49
|
}>;
|
|
39
50
|
/**
|
|
40
51
|
* Merge E2E layer results into existing core layer results.
|
|
@@ -43,12 +54,17 @@ export declare function mergeLayerResults(coreResults: LayerResults, e2eResults:
|
|
|
43
54
|
/**
|
|
44
55
|
* Convert layer results from actor output to context format.
|
|
45
56
|
* Extracts the common logic used in multiple places.
|
|
57
|
+
* Preserves test count information for accurate reporting.
|
|
46
58
|
*/
|
|
47
59
|
export declare function convertLayerResults(results: Array<{
|
|
48
60
|
layer: number;
|
|
49
61
|
success: boolean;
|
|
50
62
|
exitCode: number;
|
|
51
63
|
skipped?: boolean;
|
|
64
|
+
totalTests?: number;
|
|
65
|
+
passedTests?: number;
|
|
66
|
+
failedTests?: number;
|
|
67
|
+
flakyTests?: number;
|
|
52
68
|
}>): LayerResults;
|
|
53
69
|
/**
|
|
54
70
|
* Get database URL for runtime operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,sCAAsC;AACtC,eAAO,MAAM,WAAW,oBAAqB,CAAC;AAE9C,6BAA6B;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAM3B;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7D;AAMD,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,sCAAsC;AACtC,eAAO,MAAM,WAAW,oBAAqB,CAAC;AAE9C,6BAA6B;AAC7B,eAAO,MAAM,SAAS,IAAI,CAAC;AAM3B;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOtF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAE7D;AAMD,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,MAAM,EACN;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CACF,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,YAAY,GACvB,YAAY,CAEd;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,GACD,YAAY,CAqBd;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAEzE;AAMD;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GACjE,CAAC,GAAG,CAAC,GAAG,CAAC,CAyBX"}
|
|
@@ -229,6 +229,8 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
|
|
|
229
229
|
exitCode: number;
|
|
230
230
|
passed?: number | undefined;
|
|
231
231
|
total?: number | undefined;
|
|
232
|
+
failed?: number | undefined;
|
|
233
|
+
flaky?: number | undefined;
|
|
232
234
|
logPath?: string | undefined;
|
|
233
235
|
description?: string | undefined;
|
|
234
236
|
level?: "blocking" | "warning" | "reportOnly" | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/machine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,EAAU,KAAK,YAAY,EAAS,MAAM,QAAQ,CAAC;AA8C1D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAgBxE,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/machine/machine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,EAAU,KAAK,YAAY,EAAS,MAAM,QAAQ,CAAC;AA8C1D,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAqB,MAAM,YAAY,CAAC;AAgBxE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwsCpB,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAMxD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAYzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAE3D"}
|
|
@@ -30,6 +30,14 @@ export type LayerRunResult = {
|
|
|
30
30
|
logPath: string;
|
|
31
31
|
exitPath: string;
|
|
32
32
|
resultPath: string;
|
|
33
|
+
/** Total number of tests */
|
|
34
|
+
totalTests?: number;
|
|
35
|
+
/** Number of passed tests */
|
|
36
|
+
passedTests?: number;
|
|
37
|
+
/** Number of failed tests */
|
|
38
|
+
failedTests?: number;
|
|
39
|
+
/** Number of flaky tests (passed on retry) */
|
|
40
|
+
flakyTests?: number;
|
|
33
41
|
};
|
|
34
42
|
export declare function runLayersInParallel(params: {
|
|
35
43
|
repoRoot: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-parallel.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/utils/test-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"test-parallel.d.ts","sourceRoot":"","sources":["../../../../src/commands/ci/utils/test-parallel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AA8LF,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAuF5B"}
|
package/dist/index.js
CHANGED
|
@@ -899,7 +899,7 @@ var CLI_VERSION, HAS_ADMIN_COMMAND;
|
|
|
899
899
|
var init_version = __esm({
|
|
900
900
|
"src/version.ts"() {
|
|
901
901
|
init_esm_shims();
|
|
902
|
-
CLI_VERSION = "0.5.
|
|
902
|
+
CLI_VERSION = "0.5.28";
|
|
903
903
|
HAS_ADMIN_COMMAND = false;
|
|
904
904
|
}
|
|
905
905
|
});
|
|
@@ -12648,7 +12648,12 @@ async function determineActualSuccess(tmpDir, layer, exitCode) {
|
|
|
12648
12648
|
success: result.success,
|
|
12649
12649
|
exitCodeMismatch: result.exitCodeMismatch,
|
|
12650
12650
|
skipped: result.skipped,
|
|
12651
|
-
skippedReason: result.skippedReason
|
|
12651
|
+
skippedReason: result.skippedReason,
|
|
12652
|
+
// Test count information
|
|
12653
|
+
totalTests: result.totalTests,
|
|
12654
|
+
passedTests: result.passedTests,
|
|
12655
|
+
failedTests: result.failedTests,
|
|
12656
|
+
flakyTests: result.flakyTests
|
|
12652
12657
|
};
|
|
12653
12658
|
}
|
|
12654
12659
|
return {
|
|
@@ -12765,7 +12770,12 @@ async function runLayersInParallel(params) {
|
|
|
12765
12770
|
skippedReason: actualResult.skippedReason,
|
|
12766
12771
|
logPath: path10__default.relative(params.repoRoot, p.logFile),
|
|
12767
12772
|
exitPath: path10__default.relative(params.repoRoot, p.exitFile),
|
|
12768
|
-
resultPath: path10__default.relative(params.repoRoot, resultFile)
|
|
12773
|
+
resultPath: path10__default.relative(params.repoRoot, resultFile),
|
|
12774
|
+
// Test count information
|
|
12775
|
+
totalTests: actualResult.totalTests,
|
|
12776
|
+
passedTests: actualResult.passedTests,
|
|
12777
|
+
failedTests: actualResult.failedTests,
|
|
12778
|
+
flakyTests: actualResult.flakyTests
|
|
12769
12779
|
});
|
|
12770
12780
|
}
|
|
12771
12781
|
return results;
|
|
@@ -12877,7 +12887,24 @@ var LAYER_NAMES = {
|
|
|
12877
12887
|
function formatSingleLayer(layer, result) {
|
|
12878
12888
|
const icon = getStatusIcon3(result?.status);
|
|
12879
12889
|
const name = LAYER_NAMES[layer] ?? "";
|
|
12880
|
-
|
|
12890
|
+
let counts = "";
|
|
12891
|
+
if (typeof result?.total === "number") {
|
|
12892
|
+
const parts = [];
|
|
12893
|
+
if (typeof result.passed === "number") {
|
|
12894
|
+
parts.push(`passed: ${result.passed}`);
|
|
12895
|
+
}
|
|
12896
|
+
if (typeof result.flaky === "number" && result.flaky > 0) {
|
|
12897
|
+
parts.push(`flaky: ${result.flaky}`);
|
|
12898
|
+
}
|
|
12899
|
+
if (typeof result.failed === "number" && result.failed > 0) {
|
|
12900
|
+
parts.push(`failed: ${result.failed}`);
|
|
12901
|
+
}
|
|
12902
|
+
if (parts.length > 0) {
|
|
12903
|
+
counts = ` (${parts.join(", ")})`;
|
|
12904
|
+
} else {
|
|
12905
|
+
counts = ` (${result.total} tests)`;
|
|
12906
|
+
}
|
|
12907
|
+
}
|
|
12881
12908
|
return `- **L${layer}** ${name}: ${icon} ${result?.status ?? "unknown"}${counts}`;
|
|
12882
12909
|
}
|
|
12883
12910
|
function formatLayerResults(layerResults) {
|
|
@@ -13785,7 +13812,12 @@ function convertLayerResults(results) {
|
|
|
13785
13812
|
}
|
|
13786
13813
|
layerResults[r.layer] = {
|
|
13787
13814
|
status,
|
|
13788
|
-
exitCode: r.exitCode
|
|
13815
|
+
exitCode: r.exitCode,
|
|
13816
|
+
// Preserve test count information
|
|
13817
|
+
passed: r.passedTests,
|
|
13818
|
+
total: r.totalTests,
|
|
13819
|
+
failed: r.failedTests,
|
|
13820
|
+
flaky: r.flakyTests
|
|
13789
13821
|
};
|
|
13790
13822
|
}
|
|
13791
13823
|
return layerResults;
|
|
@@ -15647,6 +15679,10 @@ z.object({
|
|
|
15647
15679
|
exitCode: z.number().int(),
|
|
15648
15680
|
passed: z.number().int().optional(),
|
|
15649
15681
|
total: z.number().int().optional(),
|
|
15682
|
+
/** Number of tests that failed all attempts */
|
|
15683
|
+
failed: z.number().int().optional(),
|
|
15684
|
+
/** Number of flaky tests (failed initially but passed on retry) */
|
|
15685
|
+
flaky: z.number().int().optional(),
|
|
15650
15686
|
logPath: z.string().optional(),
|
|
15651
15687
|
error: z.string().optional()
|
|
15652
15688
|
});
|
|
@@ -15673,6 +15709,10 @@ var LayerSummarySchema = z.object({
|
|
|
15673
15709
|
exitCode: z.number().int(),
|
|
15674
15710
|
passed: z.number().int().optional(),
|
|
15675
15711
|
total: z.number().int().optional(),
|
|
15712
|
+
/** Number of tests that failed all attempts */
|
|
15713
|
+
failed: z.number().int().optional(),
|
|
15714
|
+
/** Number of flaky tests (failed initially but passed on retry) */
|
|
15715
|
+
flaky: z.number().int().optional(),
|
|
15676
15716
|
logPath: z.string().optional(),
|
|
15677
15717
|
description: z.string().optional(),
|
|
15678
15718
|
level: z.enum(["blocking", "warning", "reportOnly"]).optional()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runa-ai/runa-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.28",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "AI-powered DevOps CLI",
|
|
6
6
|
"type": "module",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@dotenvx/dotenvx": "1.51.4",
|
|
29
29
|
"@runa-ai/runa": "^0.5.27",
|
|
30
|
-
"@runa-ai/runa-xstate-test-plugin": "^0.5.
|
|
30
|
+
"@runa-ai/runa-xstate-test-plugin": "^0.5.28",
|
|
31
31
|
"@types/node": "22.19.3",
|
|
32
32
|
"boxen": "7.1.1",
|
|
33
33
|
"chalk": "5.6.2",
|