@quenty/cli-output-helpers 1.9.0-canary.663.f591d73.0 → 1.10.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/CHANGELOG.md +14 -2
- package/dist/reporting/composite-reporter.d.ts +3 -1
- package/dist/reporting/composite-reporter.d.ts.map +1 -1
- package/dist/reporting/composite-reporter.js +9 -0
- package/dist/reporting/composite-reporter.js.map +1 -1
- package/dist/reporting/github/comment-table-reporter.d.ts +2 -1
- package/dist/reporting/github/comment-table-reporter.d.ts.map +1 -1
- package/dist/reporting/github/comment-table-reporter.js +10 -2
- package/dist/reporting/github/comment-table-reporter.js.map +1 -1
- package/dist/reporting/github/formatting.d.ts +9 -3
- package/dist/reporting/github/formatting.d.ts.map +1 -1
- package/dist/reporting/github/formatting.js +27 -7
- package/dist/reporting/github/formatting.js.map +1 -1
- package/dist/reporting/github/github-api.d.ts +11 -0
- package/dist/reporting/github/github-api.d.ts.map +1 -1
- package/dist/reporting/github/github-api.js +74 -0
- package/dist/reporting/github/github-api.js.map +1 -1
- package/dist/reporting/grouped-reporter.d.ts.map +1 -1
- package/dist/reporting/grouped-reporter.js +14 -2
- package/dist/reporting/grouped-reporter.js.map +1 -1
- package/dist/reporting/index.d.ts +2 -1
- package/dist/reporting/index.d.ts.map +1 -1
- package/dist/reporting/index.js +2 -0
- package/dist/reporting/index.js.map +1 -1
- package/dist/reporting/progress-format.d.ts +35 -0
- package/dist/reporting/progress-format.d.ts.map +1 -0
- package/dist/reporting/progress-format.js +88 -0
- package/dist/reporting/progress-format.js.map +1 -0
- package/dist/reporting/reporter.d.ts +27 -1
- package/dist/reporting/reporter.d.ts.map +1 -1
- package/dist/reporting/reporter.js +1 -0
- package/dist/reporting/reporter.js.map +1 -1
- package/dist/reporting/simple-reporter.d.ts.map +1 -1
- package/dist/reporting/simple-reporter.js +4 -1
- package/dist/reporting/simple-reporter.js.map +1 -1
- package/dist/reporting/spinner-reporter.d.ts.map +1 -1
- package/dist/reporting/spinner-reporter.js +25 -6
- package/dist/reporting/spinner-reporter.js.map +1 -1
- package/dist/reporting/state/live-state-tracker.d.ts +3 -1
- package/dist/reporting/state/live-state-tracker.d.ts.map +1 -1
- package/dist/reporting/state/live-state-tracker.js +15 -0
- package/dist/reporting/state/live-state-tracker.js.map +1 -1
- package/dist/reporting/state/loaded-state-tracker.d.ts +2 -1
- package/dist/reporting/state/loaded-state-tracker.d.ts.map +1 -1
- package/dist/reporting/state/loaded-state-tracker.js +4 -0
- package/dist/reporting/state/loaded-state-tracker.js.map +1 -1
- package/dist/reporting/state/state-tracker.d.ts +3 -1
- package/dist/reporting/state/state-tracker.d.ts.map +1 -1
- package/dist/reporting/summary-table-reporter.d.ts.map +1 -1
- package/dist/reporting/summary-table-reporter.js +34 -6
- package/dist/reporting/summary-table-reporter.js.map +1 -1
- package/package.json +2 -2
- package/src/reporting/composite-reporter.ts +12 -1
- package/src/reporting/github/comment-table-reporter.ts +14 -2
- package/src/reporting/github/formatting.ts +37 -7
- package/src/reporting/github/github-api.ts +114 -0
- package/src/reporting/grouped-reporter.ts +15 -4
- package/src/reporting/index.ts +12 -0
- package/src/reporting/progress-format.ts +97 -0
- package/src/reporting/reporter.ts +34 -1
- package/src/reporting/simple-reporter.ts +4 -1
- package/src/reporting/spinner-reporter.ts +24 -12
- package/src/reporting/state/live-state-tracker.ts +16 -1
- package/src/reporting/state/loaded-state-tracker.ts +6 -0
- package/src/reporting/state/state-tracker.ts +3 -1
- package/src/reporting/summary-table-reporter.ts +40 -6
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,12 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
# [1.
|
|
6
|
+
# [1.10.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.9.0...@quenty/cli-output-helpers@1.10.0) (2026-02-23)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Features
|
|
10
10
|
|
|
11
|
-
* **cli:** add
|
|
11
|
+
* **cli:** add structured progress and failure context to reporting ([#668](https://github.com/Quenty/Nevermore/issues/668)) ([e716329](https://github.com/Quenty/Nevermore/commit/e716329f5aeace8b213322ba3cce06b98d8ea43d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/cli-output-helpers@1.8.0...@quenty/cli-output-helpers@1.9.0) (2026-02-19)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
|
|
23
|
+
* **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
|
|
12
24
|
|
|
13
25
|
|
|
14
26
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PackageResult, type Reporter, type JobPhase } from './reporter.js';
|
|
1
|
+
import { type PackageResult, type Reporter, type JobPhase, type ProgressSummary } from './reporter.js';
|
|
2
2
|
import { LiveStateTracker } from './state/live-state-tracker.js';
|
|
3
3
|
/**
|
|
4
4
|
* Owns a LiveStateTracker and fans out every lifecycle hook
|
|
@@ -10,9 +10,11 @@ export declare class CompositeReporter implements Reporter {
|
|
|
10
10
|
private _state;
|
|
11
11
|
private _reporters;
|
|
12
12
|
constructor(packageNames: string[], factory: (state: LiveStateTracker) => Reporter[]);
|
|
13
|
+
get state(): LiveStateTracker;
|
|
13
14
|
startAsync(): Promise<void>;
|
|
14
15
|
onPackageStart(packageName: string): void;
|
|
15
16
|
onPackagePhaseChange(packageName: string, phase: JobPhase): void;
|
|
17
|
+
onPackageProgressUpdate(packageName: string, progress: ProgressSummary): void;
|
|
16
18
|
onPackageResult(result: PackageResult, bufferedOutput?: string[]): void;
|
|
17
19
|
stopAsync(): Promise<void>;
|
|
18
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"composite-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;gBAG7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,QAAQ,EAAE;IAMlD,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOzC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAOhE,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO7E,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAOjE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAMjC"}
|
|
@@ -12,6 +12,9 @@ export class CompositeReporter {
|
|
|
12
12
|
this._state = new LiveStateTracker(packageNames);
|
|
13
13
|
this._reporters = factory(this._state);
|
|
14
14
|
}
|
|
15
|
+
get state() {
|
|
16
|
+
return this._state;
|
|
17
|
+
}
|
|
15
18
|
async startAsync() {
|
|
16
19
|
await this._state.startAsync();
|
|
17
20
|
for (const r of this._reporters) {
|
|
@@ -30,6 +33,12 @@ export class CompositeReporter {
|
|
|
30
33
|
r.onPackagePhaseChange(packageName, phase);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
36
|
+
onPackageProgressUpdate(packageName, progress) {
|
|
37
|
+
this._state.onPackageProgressUpdate(packageName, progress);
|
|
38
|
+
for (const r of this._reporters) {
|
|
39
|
+
r.onPackageProgressUpdate(packageName, progress);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
onPackageResult(result, bufferedOutput) {
|
|
34
43
|
this._state.onPackageResult(result, bufferedOutput);
|
|
35
44
|
for (const r of this._reporters) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"composite-reporter.js","sourceRoot":"","sources":["../../src/reporting/composite-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,UAAU,CAAa;IAE/B,YACE,YAAsB,EACtB,OAAgD;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,WAAmB,EAAE,KAAe;QACvD,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,QAAyB;QACpE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAqB,EAAE,cAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PackageResult, type PackageStatus, BaseReporter } from '../reporter.js';
|
|
1
|
+
import { type PackageResult, type PackageStatus, type ProgressSummary, BaseReporter } from '../reporter.js';
|
|
2
2
|
import { type IStateTracker } from '../state/state-tracker.js';
|
|
3
3
|
import { type GithubCommentTableConfig } from './formatting.js';
|
|
4
4
|
export type { GithubCommentColumn, GithubCommentTableConfig, GithubTableRow, } from './formatting.js';
|
|
@@ -34,6 +34,7 @@ export declare class GithubCommentTableReporter extends BaseReporter {
|
|
|
34
34
|
startAsync(): Promise<void>;
|
|
35
35
|
onPackageStart(_name: string): void;
|
|
36
36
|
onPackagePhaseChange(_name: string, _phase: PackageStatus): void;
|
|
37
|
+
onPackageProgressUpdate(_name: string, _progress: ProgressSummary): void;
|
|
37
38
|
onPackageResult(_result: PackageResult): void;
|
|
38
39
|
stopAsync(): Promise<void>;
|
|
39
40
|
private _scheduleUpdate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"comment-table-reporter.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,iBAAiB,CAAC;AAOzB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;IAC1D,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqB;IAE5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAU;gBAG3C,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,MAAM;IAQtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC,oBAAoB,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,aAAa,GACpB,IAAI;IAIE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI;IAIxE,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBzC,OAAO,CAAC,eAAe;YAmBT,gBAAgB;YAUhB,iBAAiB;CAOhC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isCI } from '../../cli-utils.js';
|
|
2
2
|
import { BaseReporter, } from '../reporter.js';
|
|
3
3
|
import { formatGithubTableBody, formatGithubErrorBody, formatGithubNoTestsBody, } from './formatting.js';
|
|
4
|
-
import { postOrUpdateCommentAsync } from './github-api.js';
|
|
4
|
+
import { postOrUpdateCommentAsync, postOrUpdateCommentSectionAsync, } from './github-api.js';
|
|
5
5
|
export { summarizeError } from './formatting.js';
|
|
6
6
|
/**
|
|
7
7
|
* Maintains a live PR comment that updates as jobs progress.
|
|
@@ -51,6 +51,9 @@ export class GithubCommentTableReporter extends BaseReporter {
|
|
|
51
51
|
onPackagePhaseChange(_name, _phase) {
|
|
52
52
|
this._scheduleUpdate();
|
|
53
53
|
}
|
|
54
|
+
onPackageProgressUpdate(_name, _progress) {
|
|
55
|
+
this._scheduleUpdate();
|
|
56
|
+
}
|
|
54
57
|
onPackageResult(_result) {
|
|
55
58
|
this._scheduleUpdate();
|
|
56
59
|
}
|
|
@@ -96,7 +99,12 @@ export class GithubCommentTableReporter extends BaseReporter {
|
|
|
96
99
|
await this._postCommentAsync(body);
|
|
97
100
|
}
|
|
98
101
|
async _postCommentAsync(body) {
|
|
99
|
-
|
|
102
|
+
if (this._config.sectionId) {
|
|
103
|
+
await postOrUpdateCommentSectionAsync(this._config.sectionId, body);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
await postOrUpdateCommentAsync(this._config.commentMarker, body);
|
|
107
|
+
}
|
|
100
108
|
}
|
|
101
109
|
}
|
|
102
110
|
function _isGithubCommentEnabled() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"comment-table-reporter.js","sourceRoot":"","sources":["../../../src/reporting/github/comment-table-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Both the PR comment reporter and job summary reporter use these to
|
|
5
5
|
* render identical markdown tables from batch run state.
|
|
6
6
|
*/
|
|
7
|
-
import { type PackageResult, type PackageStatus } from '../reporter.js';
|
|
7
|
+
import { type PackageResult, type PackageStatus, type ProgressSummary, type JobPhase } from '../reporter.js';
|
|
8
8
|
import { type IStateTracker, type PackageState } from '../state/state-tracker.js';
|
|
9
9
|
/** A column to render in the GitHub comment table. */
|
|
10
10
|
export interface GithubCommentColumn {
|
|
@@ -29,6 +29,12 @@ export interface GithubCommentTableConfig {
|
|
|
29
29
|
failureLabel?: string;
|
|
30
30
|
/** Verb in the footer, e.g. "tested" in "X tested, Y passed, Z failed". Default: "tested" */
|
|
31
31
|
summaryVerb?: string;
|
|
32
|
+
/**
|
|
33
|
+
* When set, the PR comment reporter uses section-based merging.
|
|
34
|
+
* Multiple configs with different sectionIds share a single PR comment,
|
|
35
|
+
* each managing their own section independently.
|
|
36
|
+
*/
|
|
37
|
+
sectionId?: string;
|
|
32
38
|
}
|
|
33
39
|
/** A single row in the rendered GitHub table. */
|
|
34
40
|
export interface GithubTableRow {
|
|
@@ -40,8 +46,8 @@ export interface GithubTableRow {
|
|
|
40
46
|
* Summarize an error string for display in compact contexts (tables, etc.).
|
|
41
47
|
* Parses JSON API error bodies and truncates long messages.
|
|
42
48
|
*/
|
|
43
|
-
export declare function summarizeError(error: string): string;
|
|
44
|
-
export declare function formatRunningStatus(phase: PackageStatus): string;
|
|
49
|
+
export declare function summarizeError(error: string, failedPhase?: JobPhase): string;
|
|
50
|
+
export declare function formatRunningStatus(phase: PackageStatus, progress?: ProgressSummary): string;
|
|
45
51
|
export declare function formatResultStatus(pkg: PackageResult, successLabel: string, failureLabel: string): string;
|
|
46
52
|
export declare function getActionsRunUrl(): string | undefined;
|
|
47
53
|
/** Render a markdown table with header, data rows, and footer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAKnC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,WAAW,wBAAwB;IACvC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAID;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAkB5E;AA4BD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAO5F;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAiBR;AAED,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAUrD;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,cAAc,EAAE,EACtB,YAAY,EAAE,mBAAmB,EAAE,EACnC,MAAM,EAAE,MAAM,GACb,MAAM,CAyCR;AA8BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,GAClB,MAAM,CA8ER;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAcR;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,MAAM,GACZ,MAAM,CAcR"}
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
* render identical markdown tables from batch run state.
|
|
6
6
|
*/
|
|
7
7
|
import { formatDurationMs } from '../../cli-utils.js';
|
|
8
|
+
import { formatProgressInline, formatProgressResult, isEmptyTestRun } from '../progress-format.js';
|
|
8
9
|
// ── Error summarization ─────────────────────────────────────────────────────
|
|
9
10
|
/**
|
|
10
11
|
* Summarize an error string for display in compact contexts (tables, etc.).
|
|
11
12
|
* Parses JSON API error bodies and truncates long messages.
|
|
12
13
|
*/
|
|
13
|
-
export function summarizeError(error) {
|
|
14
|
+
export function summarizeError(error, failedPhase) {
|
|
14
15
|
const firstLine = error.split('\n')[0];
|
|
15
16
|
// Try to extract JSON error body from API responses
|
|
16
17
|
// Format: "Action failed: STATUS TEXT: {json}"
|
|
@@ -51,14 +52,29 @@ const RUNNING_PHASE_LABELS = {
|
|
|
51
52
|
connecting: '🔌 Connecting...',
|
|
52
53
|
executing: '🔄 Executing...',
|
|
53
54
|
};
|
|
54
|
-
export function formatRunningStatus(phase) {
|
|
55
|
-
|
|
55
|
+
export function formatRunningStatus(phase, progress) {
|
|
56
|
+
const label = RUNNING_PHASE_LABELS[phase] ?? '🔄 Running...';
|
|
57
|
+
if (progress) {
|
|
58
|
+
const progressText = formatProgressInline(progress);
|
|
59
|
+
return progressText ? `${label} ${progressText}` : label;
|
|
60
|
+
}
|
|
61
|
+
return label;
|
|
56
62
|
}
|
|
57
63
|
export function formatResultStatus(pkg, successLabel, failureLabel) {
|
|
58
64
|
const duration = formatDurationMs(pkg.durationMs);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
const progressText = formatProgressResult(pkg.progressSummary);
|
|
66
|
+
const empty = isEmptyTestRun(pkg.progressSummary);
|
|
67
|
+
if (pkg.success) {
|
|
68
|
+
const label = progressText ? `${successLabel} ${progressText}` : successLabel;
|
|
69
|
+
return empty
|
|
70
|
+
? `⚠️ ${label} (${duration})`
|
|
71
|
+
: `✅ ${label} (${duration})`;
|
|
72
|
+
}
|
|
73
|
+
const failedPhase = pkg.failedPhase;
|
|
74
|
+
const label = failedPhase
|
|
75
|
+
? `**${failureLabel}** at ${failedPhase}`
|
|
76
|
+
: `**${failureLabel}**`;
|
|
77
|
+
return `❌ ${label} (${duration})`;
|
|
62
78
|
}
|
|
63
79
|
export function getActionsRunUrl() {
|
|
64
80
|
const serverUrl = process.env.GITHUB_SERVER_URL;
|
|
@@ -144,7 +160,7 @@ export function formatGithubTableBody(state, config, concurrency) {
|
|
|
144
160
|
statusText = formatResultStatus(pkg.result, config.successLabel ?? 'Passed', config.failureLabel ?? 'Failed');
|
|
145
161
|
break;
|
|
146
162
|
default:
|
|
147
|
-
statusText = formatRunningStatus(pkg.status);
|
|
163
|
+
statusText = formatRunningStatus(pkg.status, pkg.progress);
|
|
148
164
|
break;
|
|
149
165
|
}
|
|
150
166
|
const extraCells = extraColumns.map((col) => col.render(pkg));
|
|
@@ -158,8 +174,12 @@ export function formatGithubTableBody(state, config, concurrency) {
|
|
|
158
174
|
if (allDone) {
|
|
159
175
|
const passed = packages.filter((p) => p.status === 'passed').length;
|
|
160
176
|
const failed = packages.filter((p) => p.status === 'failed').length;
|
|
177
|
+
const emptyRuns = packages.filter((p) => isEmptyTestRun(p.progress)).length;
|
|
161
178
|
const verb = config.summaryVerb ?? 'tested';
|
|
162
179
|
footer = `**${packages.length} ${verb}, ${passed} passed, ${failed} failed** in ${formatDurationMs(elapsedMs)}`;
|
|
180
|
+
if (emptyRuns > 0) {
|
|
181
|
+
footer += `\n⚠️ ${emptyRuns} package(s) ran 0 tests — check test discovery`;
|
|
182
|
+
}
|
|
163
183
|
}
|
|
164
184
|
else {
|
|
165
185
|
const done = packages.filter((p) => p.status === 'passed' || p.status === 'failed').length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../../src/reporting/github/formatting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* GitHub API helpers for posting and updating PR comments.
|
|
3
3
|
*/
|
|
4
|
+
/** Shared marker used for the combined CI results comment. */
|
|
5
|
+
export declare const SHARED_CI_COMMENT_MARKER = "<!-- nevermore-ci-results -->";
|
|
4
6
|
interface GitHubContext {
|
|
5
7
|
token: string;
|
|
6
8
|
owner: string;
|
|
@@ -23,5 +25,14 @@ export declare function resolveGitHubContext(): GitHubContext | undefined;
|
|
|
23
25
|
* Returns false and warns (rather than throwing) on failure.
|
|
24
26
|
*/
|
|
25
27
|
export declare function postOrUpdateCommentAsync(commentMarker: string, body: string): Promise<boolean>;
|
|
28
|
+
/**
|
|
29
|
+
* Post or update a section within a shared PR comment.
|
|
30
|
+
*
|
|
31
|
+
* Uses {@link SHARED_CI_COMMENT_MARKER} to find the combined comment, then
|
|
32
|
+
* replaces the section delimited by `<!-- section:ID -->` / `<!-- /section:ID -->`.
|
|
33
|
+
* If the section doesn't exist yet, appends it. If no combined comment exists,
|
|
34
|
+
* creates one.
|
|
35
|
+
*/
|
|
36
|
+
export declare function postOrUpdateCommentSectionAsync(sectionId: string, sectionBody: string): Promise<boolean>;
|
|
26
37
|
export {};
|
|
27
38
|
//# sourceMappingURL=github-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAwChE;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CA0ElB"}
|
|
1
|
+
{"version":3,"file":"github-api.d.ts","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,SAAS,CAwChE;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CA0ElB;AAED;;;;;;;GAOG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAkGlB"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as fsSync from 'fs';
|
|
5
5
|
import { OutputHelper } from '../../outputHelper.js';
|
|
6
|
+
/** Shared marker used for the combined CI results comment. */
|
|
7
|
+
export const SHARED_CI_COMMENT_MARKER = '<!-- nevermore-ci-results -->';
|
|
6
8
|
/**
|
|
7
9
|
* Resolve GitHub context from environment variables.
|
|
8
10
|
*
|
|
@@ -98,4 +100,76 @@ export async function postOrUpdateCommentAsync(commentMarker, body) {
|
|
|
98
100
|
}
|
|
99
101
|
return true;
|
|
100
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Post or update a section within a shared PR comment.
|
|
105
|
+
*
|
|
106
|
+
* Uses {@link SHARED_CI_COMMENT_MARKER} to find the combined comment, then
|
|
107
|
+
* replaces the section delimited by `<!-- section:ID -->` / `<!-- /section:ID -->`.
|
|
108
|
+
* If the section doesn't exist yet, appends it. If no combined comment exists,
|
|
109
|
+
* creates one.
|
|
110
|
+
*/
|
|
111
|
+
export async function postOrUpdateCommentSectionAsync(sectionId, sectionBody) {
|
|
112
|
+
const ctx = resolveGitHubContext();
|
|
113
|
+
if (!ctx) {
|
|
114
|
+
OutputHelper.warn('GitHub context not available (missing GITHUB_TOKEN, GITHUB_REPOSITORY, or PR number). Skipping PR comment.');
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
const apiBase = `https://api.github.com/repos/${ctx.owner}/${ctx.repo}`;
|
|
118
|
+
const headers = {
|
|
119
|
+
Authorization: `Bearer ${ctx.token}`,
|
|
120
|
+
Accept: 'application/vnd.github+json',
|
|
121
|
+
'X-GitHub-Api-Version': '2022-11-28',
|
|
122
|
+
'Content-Type': 'application/json',
|
|
123
|
+
};
|
|
124
|
+
const listResponse = await fetch(`${apiBase}/issues/${ctx.prNumber}/comments?per_page=100`, { headers });
|
|
125
|
+
if (!listResponse.ok) {
|
|
126
|
+
OutputHelper.warn(`Failed to list PR comments: ${listResponse.status} ${listResponse.statusText}`);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
const comments = (await listResponse.json());
|
|
130
|
+
const sectionStart = `<!-- section:${sectionId} -->`;
|
|
131
|
+
const sectionEnd = `<!-- /section:${sectionId} -->`;
|
|
132
|
+
const wrappedSection = `${sectionStart}\n${sectionBody}\n${sectionEnd}`;
|
|
133
|
+
const existing = comments.find((c) => c.body.includes(SHARED_CI_COMMENT_MARKER));
|
|
134
|
+
let fullBody;
|
|
135
|
+
if (existing) {
|
|
136
|
+
const startIdx = existing.body.indexOf(sectionStart);
|
|
137
|
+
const endIdx = existing.body.indexOf(sectionEnd);
|
|
138
|
+
if (startIdx >= 0 && endIdx >= 0) {
|
|
139
|
+
// Replace existing section
|
|
140
|
+
fullBody =
|
|
141
|
+
existing.body.slice(0, startIdx) +
|
|
142
|
+
wrappedSection +
|
|
143
|
+
existing.body.slice(endIdx + sectionEnd.length);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// Append new section
|
|
147
|
+
fullBody = existing.body.trimEnd() + '\n\n' + wrappedSection + '\n';
|
|
148
|
+
}
|
|
149
|
+
const updateResponse = await fetch(`${apiBase}/issues/comments/${existing.id}`, {
|
|
150
|
+
method: 'PATCH',
|
|
151
|
+
headers,
|
|
152
|
+
body: JSON.stringify({ body: fullBody }),
|
|
153
|
+
});
|
|
154
|
+
if (!updateResponse.ok) {
|
|
155
|
+
OutputHelper.warn(`Failed to update PR comment: ${updateResponse.status} ${updateResponse.statusText}`);
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
OutputHelper.info(`Updated PR comment (section: ${sectionId}).`);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
fullBody = SHARED_CI_COMMENT_MARKER + '\n\n' + wrappedSection + '\n';
|
|
162
|
+
const createResponse = await fetch(`${apiBase}/issues/${ctx.prNumber}/comments`, {
|
|
163
|
+
method: 'POST',
|
|
164
|
+
headers,
|
|
165
|
+
body: JSON.stringify({ body: fullBody }),
|
|
166
|
+
});
|
|
167
|
+
if (!createResponse.ok) {
|
|
168
|
+
OutputHelper.warn(`Failed to create PR comment: ${createResponse.status} ${createResponse.statusText}`);
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
OutputHelper.info(`Posted PR comment (section: ${sectionId}).`);
|
|
172
|
+
}
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
101
175
|
//# sourceMappingURL=github-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../../src/reporting/github/github-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"grouped-reporter.d.ts","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,KAAK,CAAU;gBAEX,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,sBAAsB;IAOlD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMlC,eAAe,CACtB,MAAM,EAAE,aAAa,EACrB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,IAAI;IAIP,OAAO,CAAC,mBAAmB;CAiE5B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OutputHelper } from '../outputHelper.js';
|
|
2
2
|
import { formatDurationMs, isCI } from '../cli-utils.js';
|
|
3
3
|
import { BaseReporter } from './reporter.js';
|
|
4
|
+
import { formatProgressResult, isEmptyTestRun } from './progress-format.js';
|
|
4
5
|
/**
|
|
5
6
|
* CI / verbose / non-TTY output for batch job progress.
|
|
6
7
|
* Prints grouped result blocks as each package completes.
|
|
@@ -44,11 +45,22 @@ export class GroupedReporter extends BaseReporter {
|
|
|
44
45
|
const duration = formatDurationMs(result.durationMs);
|
|
45
46
|
const successLabel = this._options.successLabel ?? 'Passed';
|
|
46
47
|
const failureLabel = this._options.failureLabel ?? 'FAILED';
|
|
48
|
+
const progressText = formatProgressResult(result.progressSummary);
|
|
49
|
+
const empty = isEmptyTestRun(result.progressSummary);
|
|
47
50
|
if (result.success) {
|
|
48
|
-
|
|
51
|
+
const label = progressText ? `${successLabel} ${progressText}` : successLabel;
|
|
52
|
+
const formatted = empty
|
|
53
|
+
? OutputHelper.formatWarning(`${label} ⚠`)
|
|
54
|
+
: OutputHelper.formatSuccess(label);
|
|
55
|
+
const icon = empty ? OutputHelper.formatWarning('⚠') : OutputHelper.formatSuccess('✓');
|
|
56
|
+
console.log(` ${icon} ${formatted} ${OutputHelper.formatDim(`(${duration})`)}`);
|
|
49
57
|
}
|
|
50
58
|
else {
|
|
51
|
-
|
|
59
|
+
const failedPhase = result.failedPhase;
|
|
60
|
+
const label = failedPhase
|
|
61
|
+
? `${failureLabel} at ${failedPhase}`
|
|
62
|
+
: failureLabel;
|
|
63
|
+
console.log(` ${OutputHelper.formatError('✗')} ${OutputHelper.formatError(label)} ${OutputHelper.formatDim(`(${duration})`)}`);
|
|
52
64
|
}
|
|
53
65
|
if (showLogs) {
|
|
54
66
|
if (result.logs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAsB,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"grouped-reporter.js","sourceRoot":"","sources":["../../src/reporting/grouped-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, } from './reporter.js';
|
|
1
|
+
export { BaseReporter, type Reporter, type JobPhase, type PackageStatus, type PackageResult, type BatchSummary, type ProgressSummary, type TestCountProgress, type ByteProgress, type StepProgress, } from './reporter.js';
|
|
2
|
+
export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
|
|
2
3
|
export { type IStateTracker, type PackageState, } from './state/state-tracker.js';
|
|
3
4
|
export { LiveStateTracker } from './state/live-state-tracker.js';
|
|
4
5
|
export { LoadedStateTracker } from './state/loaded-state-tracker.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
package/dist/reporting/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Core types and base class
|
|
2
2
|
export { BaseReporter, } from './reporter.js';
|
|
3
|
+
// Progress formatting helpers
|
|
4
|
+
export { formatProgressInline, formatProgressResult, isEmptyTestRun, summarizeFailure, } from './progress-format.js';
|
|
3
5
|
export { LiveStateTracker } from './state/live-state-tracker.js';
|
|
4
6
|
export { LoadedStateTracker } from './state/loaded-state-tracker.js';
|
|
5
7
|
// Reporter implementations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reporting/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,EACL,YAAY,GAUb,MAAM,eAAe,CAAC;AAEvB,8BAA8B;AAC9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAO9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EACL,cAAc,GAEf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,GAEhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EAIxB,cAAc,EAId,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formatting helpers for ProgressSummary values.
|
|
3
|
+
*/
|
|
4
|
+
import { type ProgressSummary, type JobPhase } from './reporter.js';
|
|
5
|
+
/**
|
|
6
|
+
* Format progress for inline display in spinners and running status.
|
|
7
|
+
* Returns empty string when progress is undefined.
|
|
8
|
+
*
|
|
9
|
+
* - test-counts: "(5/23)"
|
|
10
|
+
* - bytes: "12.3 MB" or "45%"
|
|
11
|
+
* - steps: "(3/10)"
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatProgressInline(progress?: ProgressSummary): string;
|
|
14
|
+
/**
|
|
15
|
+
* Format progress for final result display (passed/failed lines).
|
|
16
|
+
* Returns empty string when progress is undefined.
|
|
17
|
+
*
|
|
18
|
+
* - test-counts: "(23/100)" or "(0/0)"
|
|
19
|
+
* - bytes: "(12.3 MB)"
|
|
20
|
+
* - steps: "(3/10)"
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatProgressResult(progress?: ProgressSummary): string;
|
|
23
|
+
/** True when progress is test-counts with total === 0. */
|
|
24
|
+
export declare function isEmptyTestRun(progress?: ProgressSummary): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Condense a raw error string and optional failedPhase into a short one-liner.
|
|
27
|
+
*
|
|
28
|
+
* Examples:
|
|
29
|
+
* summarizeFailure("Upload failed: 409 Conflict: {...}", "uploading")
|
|
30
|
+
* → "at uploading: Upload failed (409)"
|
|
31
|
+
* summarizeFailure("timeout after 120s", "executing")
|
|
32
|
+
* → "at executing: timeout after 120s"
|
|
33
|
+
*/
|
|
34
|
+
export declare function summarizeFailure(error?: string, failedPhase?: JobPhase): string;
|
|
35
|
+
//# sourceMappingURL=progress-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-format.d.ts","sourceRoot":"","sources":["../../src/reporting/progress-format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAkBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,MAAM,CAWvE;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAElE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,QAAQ,GACrB,MAAM,CAkBR"}
|