gha-workflow-testing 1.0.0 → 1.1.1
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 +16 -19
- package/dist/check_run.d.ts +20 -0
- package/dist/check_run.d.ts.map +1 -0
- package/dist/check_run.js +110 -0
- package/dist/check_run.js.map +1 -0
- package/dist/github-api.d.ts +2 -0
- package/dist/github-api.d.ts.map +1 -1
- package/dist/github-api.js +37 -11
- package/dist/github-api.js.map +1 -1
- package/dist/global_setup.d.ts +9 -0
- package/dist/global_setup.d.ts.map +1 -0
- package/dist/global_setup.js +50 -0
- package/dist/global_setup.js.map +1 -0
- package/dist/global_teardown.d.ts +10 -0
- package/dist/global_teardown.d.ts.map +1 -0
- package/dist/global_teardown.js +77 -0
- package/dist/global_teardown.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/reporter.d.ts +28 -0
- package/dist/reporter.d.ts.map +1 -1
- package/dist/reporter.js +106 -51
- package/dist/reporter.js.map +1 -1
- package/dist/reusable_reporter.d.ts +211 -0
- package/dist/reusable_reporter.d.ts.map +1 -0
- package/dist/reusable_reporter.js +749 -0
- package/dist/reusable_reporter.js.map +1 -0
- package/dist/workflow_status.d.ts +57 -0
- package/dist/workflow_status.d.ts.map +1 -0
- package/dist/workflow_status.js +165 -0
- package/dist/workflow_status.js.map +1 -0
- package/package.json +6 -7
- package/src/check_run.ts +122 -0
- package/src/github-api.ts +44 -12
- package/src/global_setup.ts +16 -0
- package/src/global_teardown.ts +53 -0
- package/src/index.ts +3 -0
- package/src/reporter.ts +121 -21
- package/src/reusable_reporter.ts +890 -0
- package/src/workflow_status.ts +181 -0
package/dist/reporter.js
CHANGED
|
@@ -1,42 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.WorkflowTestReporter = void 0;
|
|
37
4
|
exports.getReporter = getReporter;
|
|
38
5
|
exports.resetReporter = resetReporter;
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
6
|
class WorkflowTestReporter {
|
|
41
7
|
constructor(workflowName) {
|
|
42
8
|
this.jobs = {};
|
|
@@ -60,7 +26,7 @@ class WorkflowTestReporter {
|
|
|
60
26
|
this.jobs[jobName] = {
|
|
61
27
|
tested: false,
|
|
62
28
|
result: 'Not Tested',
|
|
63
|
-
conclusion: jobInfo.conclusion
|
|
29
|
+
conclusion: jobInfo.conclusion ?? undefined,
|
|
64
30
|
steps: {},
|
|
65
31
|
};
|
|
66
32
|
}
|
|
@@ -96,11 +62,43 @@ class WorkflowTestReporter {
|
|
|
96
62
|
};
|
|
97
63
|
}
|
|
98
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Return an aggregated job count snapshot.
|
|
67
|
+
* Used by `registerWorkflowResult` to populate the cross-workflow status file
|
|
68
|
+
* without exposing the raw jobs map.
|
|
69
|
+
*/
|
|
70
|
+
getJobSummary() {
|
|
71
|
+
let passed = 0, failed = 0, skipped = 0;
|
|
72
|
+
for (const jobInfo of Object.values(this.jobs)) {
|
|
73
|
+
const c = jobInfo.conclusion ?? '';
|
|
74
|
+
if (c === 'success')
|
|
75
|
+
passed++;
|
|
76
|
+
else if (c === 'skipped' || c === 'neutral')
|
|
77
|
+
skipped++;
|
|
78
|
+
else if (c)
|
|
79
|
+
failed++;
|
|
80
|
+
}
|
|
81
|
+
return { total: Object.keys(this.jobs).length, passed, failed, skipped };
|
|
82
|
+
}
|
|
83
|
+
/** Return per-job name + conclusion for cross-workflow diagnostic reporting. */
|
|
84
|
+
getJobDetails() {
|
|
85
|
+
return Object.entries(this.jobs).map(([name, info]) => ({
|
|
86
|
+
name,
|
|
87
|
+
conclusion: info.conclusion ?? null,
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
getRunId() {
|
|
91
|
+
return this.runId;
|
|
92
|
+
}
|
|
99
93
|
recordJobTest(jobName, passed, expected, actual) {
|
|
100
94
|
this.addJob(jobName);
|
|
101
95
|
this.jobs[jobName].tested = true;
|
|
102
96
|
this.jobs[jobName].expected = expected;
|
|
103
97
|
this.jobs[jobName].actual = actual;
|
|
98
|
+
// Propagate the real API conclusion back so buildWorkflowRollup is accurate
|
|
99
|
+
if (actual !== undefined) {
|
|
100
|
+
this.jobs[jobName].conclusion = actual;
|
|
101
|
+
}
|
|
104
102
|
if (passed) {
|
|
105
103
|
this.jobs[jobName].result = `✅ Passed (expected: ${expected})`;
|
|
106
104
|
}
|
|
@@ -196,6 +194,34 @@ class WorkflowTestReporter {
|
|
|
196
194
|
lines.push(`| Artifacts Tested | ${testedArtifacts} |`);
|
|
197
195
|
lines.push(`| Artifacts Passed | ${passedArtifacts} |`);
|
|
198
196
|
lines.push('');
|
|
197
|
+
// ── Workflow & Job rollup ─────────────────────────────────────────────
|
|
198
|
+
const rollup = this.buildWorkflowRollup();
|
|
199
|
+
if (rollup.size > 0) {
|
|
200
|
+
lines.push('## 🔄 Workflow Summary');
|
|
201
|
+
lines.push('');
|
|
202
|
+
lines.push('| Workflow | Jobs | Pass | Fail | Skipped |');
|
|
203
|
+
lines.push('|----------|------|------|------|---------|');
|
|
204
|
+
for (const [wfName, wfData] of rollup.entries()) {
|
|
205
|
+
lines.push(`| \`${wfName}\` | ${wfData.total} | ${wfData.pass} | ${wfData.fail} | ${wfData.skipped} |`);
|
|
206
|
+
}
|
|
207
|
+
lines.push('');
|
|
208
|
+
for (const [wfName, wfData] of rollup.entries()) {
|
|
209
|
+
if (wfData.jobs.length === 0)
|
|
210
|
+
continue;
|
|
211
|
+
lines.push(`### Job Summary — \`${wfName}\``);
|
|
212
|
+
lines.push('');
|
|
213
|
+
lines.push('| Job | Conclusion |');
|
|
214
|
+
lines.push('|-----|-----------|');
|
|
215
|
+
for (const { displayName, conclusion } of wfData.jobs) {
|
|
216
|
+
const icon = conclusion === 'success' ? '✅' :
|
|
217
|
+
conclusion === 'skipped' ? '⏭️' :
|
|
218
|
+
conclusion === 'neutral' ? 'ℹ️' :
|
|
219
|
+
conclusion != null ? '❌' : '❓';
|
|
220
|
+
lines.push(`| ${icon} \`${displayName}\` | ${conclusion ?? 'unknown'} |`);
|
|
221
|
+
}
|
|
222
|
+
lines.push('');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
199
225
|
// Job details
|
|
200
226
|
lines.push('## 📋 Detailed Test Results');
|
|
201
227
|
lines.push('');
|
|
@@ -236,28 +262,57 @@ class WorkflowTestReporter {
|
|
|
236
262
|
return lines.join('\n');
|
|
237
263
|
}
|
|
238
264
|
writeToGithubSummary() {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
console.log('⚠️ GITHUB_STEP_SUMMARY environment variable not set');
|
|
243
|
-
console.log(' Report will only be printed to console');
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
console.log(`📝 Writing report to: ${summaryFile}`);
|
|
247
|
-
const markdown = this.generateMarkdown();
|
|
248
|
-
try {
|
|
249
|
-
fs.appendFileSync(summaryFile, markdown);
|
|
250
|
-
console.log('✅ Test report successfully written to GitHub Actions summary');
|
|
251
|
-
}
|
|
252
|
-
catch (error) {
|
|
253
|
-
console.log(`❌ Failed to write report: ${error}`);
|
|
254
|
-
}
|
|
265
|
+
// Per-workflow detail is now attached to the GitHub Check Run (see check_run.ts).
|
|
266
|
+
// This method is intentionally a no-op; kept for backward compatibility.
|
|
267
|
+
console.log('ℹ️ Per-workflow report will appear in the Check Run (not the step summary).');
|
|
255
268
|
}
|
|
256
269
|
printReport() {
|
|
257
270
|
console.log('\n' + '='.repeat(80));
|
|
258
271
|
console.log(this.generateMarkdown());
|
|
259
272
|
console.log('='.repeat(80) + '\n');
|
|
260
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
* Group this.jobs by their reusable-workflow name and compute pass/fail/skipped counts.
|
|
276
|
+
*
|
|
277
|
+
* Grouping rule:
|
|
278
|
+
* - Job name contains " / " → first segment is the caller job name.
|
|
279
|
+
* Strip a leading "call-" prefix to get the reusable-wf group
|
|
280
|
+
* (e.g. "call-ci-scan / sonarqube / scan" → group "ci-scan",
|
|
281
|
+
* display name "sonarqube / scan").
|
|
282
|
+
* - No " / " in name → direct caller job, group "(caller)".
|
|
283
|
+
*/
|
|
284
|
+
buildWorkflowRollup() {
|
|
285
|
+
const rollup = new Map();
|
|
286
|
+
for (const [jobName, jobInfo] of Object.entries(this.jobs)) {
|
|
287
|
+
const slashIdx = jobName.indexOf(' / ');
|
|
288
|
+
let wfName;
|
|
289
|
+
let displayName;
|
|
290
|
+
if (slashIdx === -1) {
|
|
291
|
+
wfName = '(caller)';
|
|
292
|
+
displayName = jobName;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
// Convention: job name = reusable-wf name it calls, e.g. "ci-scan / sonarqube / scan"
|
|
296
|
+
// First segment IS the reusable workflow group name, remainder is the display name.
|
|
297
|
+
wfName = jobName.substring(0, slashIdx);
|
|
298
|
+
displayName = jobName.substring(slashIdx + 3);
|
|
299
|
+
}
|
|
300
|
+
if (!rollup.has(wfName)) {
|
|
301
|
+
rollup.set(wfName, { total: 0, pass: 0, fail: 0, skipped: 0, jobs: [] });
|
|
302
|
+
}
|
|
303
|
+
const entry = rollup.get(wfName);
|
|
304
|
+
entry.total++;
|
|
305
|
+
const c = jobInfo.conclusion ?? null;
|
|
306
|
+
if (c === 'success')
|
|
307
|
+
entry.pass++;
|
|
308
|
+
else if (c === 'skipped' || c === 'neutral')
|
|
309
|
+
entry.skipped++;
|
|
310
|
+
else if (c != null)
|
|
311
|
+
entry.fail++;
|
|
312
|
+
entry.jobs.push({ displayName, conclusion: c });
|
|
313
|
+
}
|
|
314
|
+
return rollup;
|
|
315
|
+
}
|
|
261
316
|
}
|
|
262
317
|
exports.WorkflowTestReporter = WorkflowTestReporter;
|
|
263
318
|
// Global reporter instance
|
package/dist/reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reusable_reporter.ts
|
|
3
|
+
*
|
|
4
|
+
* Aggregating reporter that groups GitHub Actions jobs and steps by the
|
|
5
|
+
* reusable workflow that defined them. Extends WorkflowTestReporter from
|
|
6
|
+
* reporter.ts so all existing recording/assertion helpers still work; this
|
|
7
|
+
* file only adds the aggregation and grouped-output layer on top.
|
|
8
|
+
*
|
|
9
|
+
* Primary strategy : use the `workflow_name` field returned by the GitHub
|
|
10
|
+
* Jobs API (populated when a job is defined in a reusable
|
|
11
|
+
* workflow called via `uses:`).
|
|
12
|
+
* Fallback strategy : parse the job name for a " / " separator pattern that
|
|
13
|
+
* GitHub sometimes uses when nesting reusable calls
|
|
14
|
+
* (e.g. "call-ci-scan / sonarqube" → group "call-ci-scan").
|
|
15
|
+
*/
|
|
16
|
+
import { WorkflowTestReporter } from './reporter';
|
|
17
|
+
import { GitHubAPI } from './github-api';
|
|
18
|
+
export interface ReusableStepSummary {
|
|
19
|
+
conclusion: string | null;
|
|
20
|
+
passed: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ReusableJobSummary {
|
|
23
|
+
conclusion: string | null;
|
|
24
|
+
passed: boolean;
|
|
25
|
+
steps: {
|
|
26
|
+
[stepName: string]: ReusableStepSummary;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Sentinel group key for jobs defined directly in the caller workflow (not via `uses:`). */
|
|
30
|
+
export declare const DIRECT_JOBS_GROUP = "(caller)";
|
|
31
|
+
export interface ReusableWorkflowGroup {
|
|
32
|
+
/**
|
|
33
|
+
* Reusable workflow name (from the `workflow_name` API field, e.g. "scan" / "ci-scan"),
|
|
34
|
+
* OR `DIRECT_JOBS_GROUP` for jobs defined directly in the caller workflow.
|
|
35
|
+
*/
|
|
36
|
+
workflowName: string;
|
|
37
|
+
/**
|
|
38
|
+
* True when this group holds jobs defined directly in the caller workflow
|
|
39
|
+
* (not triggered via a reusable workflow `uses:` call).
|
|
40
|
+
*/
|
|
41
|
+
isDirect: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The caller-workflow job names that invoked this reusable workflow
|
|
44
|
+
* (e.g. `["call-ci-scan"]`). Empty for direct-job groups.
|
|
45
|
+
*/
|
|
46
|
+
callerJobNames: string[];
|
|
47
|
+
jobs: {
|
|
48
|
+
[jobName: string]: ReusableJobSummary;
|
|
49
|
+
};
|
|
50
|
+
overallResult: 'success' | 'failure' | 'partial_failure' | 'skipped' | 'unknown';
|
|
51
|
+
totalJobs: number;
|
|
52
|
+
passedJobs: number;
|
|
53
|
+
failedJobs: number;
|
|
54
|
+
totalSteps: number;
|
|
55
|
+
passedSteps: number;
|
|
56
|
+
failedSteps: number;
|
|
57
|
+
}
|
|
58
|
+
export declare class ReusableWorkflowReporter extends WorkflowTestReporter {
|
|
59
|
+
private callerWorkflowName;
|
|
60
|
+
private reusableGroups;
|
|
61
|
+
constructor(workflowName: string);
|
|
62
|
+
/**
|
|
63
|
+
* Convenience method: loads all jobs/steps via the parent's
|
|
64
|
+
* `loadAllJobsAndSteps`, then groups them by reusable workflow name.
|
|
65
|
+
*/
|
|
66
|
+
loadAndGroup(api: GitHubAPI, runId: number): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Fetch all jobs for `runId`, then for each job:
|
|
69
|
+
* 1. Determine which reusable workflow group it belongs to
|
|
70
|
+
* (via `workflow_name` API field, falling back to the job-name pattern).
|
|
71
|
+
* 2. Fetch its steps and record pass/fail per step.
|
|
72
|
+
* Builds the internal `reusableGroups` map and computes per-group totals.
|
|
73
|
+
*/
|
|
74
|
+
groupByReusableWorkflow(api: GitHubAPI, runId: number): Promise<void>;
|
|
75
|
+
/** Return all computed groups (read-only snapshot). */
|
|
76
|
+
getReusableGroups(): Readonly<{
|
|
77
|
+
[wfName: string]: ReusableWorkflowGroup;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Assert every reusable-workflow group (excludes the `(caller)` direct-job
|
|
81
|
+
* group) has `overallResult === 'success'`.
|
|
82
|
+
* Throws with a summary of every failing group.
|
|
83
|
+
*/
|
|
84
|
+
assertAllGroupsSucceed(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Assert every direct (caller-defined) job succeeded.
|
|
87
|
+
* Throws with the list of failed jobs.
|
|
88
|
+
*/
|
|
89
|
+
assertAllDirectJobsSucceed(): void;
|
|
90
|
+
/**
|
|
91
|
+
* Assert every step in every reusable group has an acceptable conclusion
|
|
92
|
+
* (`'success'` or `'skipped'`).
|
|
93
|
+
* Throws with a full list of offending steps.
|
|
94
|
+
*/
|
|
95
|
+
assertAllStepsAcceptable(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Assert that a reusable-workflow group with the given name (case-insensitive
|
|
98
|
+
* substring match) exists and succeeded.
|
|
99
|
+
*
|
|
100
|
+
* @param pattern Substring or regex to match against group names
|
|
101
|
+
* (e.g. `'sonar'`, `'snyk'`, `/ci-scan/i`).
|
|
102
|
+
*/
|
|
103
|
+
assertGroupSucceeds(pattern: string | RegExp): void;
|
|
104
|
+
/**
|
|
105
|
+
* Strip the `.yml` / `.yaml` suffix and owner prefix so the group key is
|
|
106
|
+
* a short, readable workflow name (e.g. "ci-scan" not "ci-scan.yml").
|
|
107
|
+
*/
|
|
108
|
+
private normaliseWorkflowName;
|
|
109
|
+
/**
|
|
110
|
+
* Fallback: if the job name contains " / ", treat everything before the
|
|
111
|
+
* last " / " as the group (the caller job name).
|
|
112
|
+
* Example: "call-ci-scan / sonarqube" → "call-ci-scan"
|
|
113
|
+
* If no separator, the job itself is its own group.
|
|
114
|
+
*/
|
|
115
|
+
private inferGroupFromJobName;
|
|
116
|
+
/** Build a markdown string grouped by reusable workflow. */
|
|
117
|
+
generateGroupedMarkdown(): string;
|
|
118
|
+
/**
|
|
119
|
+
* Write the grouped report to `GITHUB_STEP_SUMMARY` (if running in CI)
|
|
120
|
+
* and always print to console.
|
|
121
|
+
*/
|
|
122
|
+
writeGroupedSummaryToGithub(): void;
|
|
123
|
+
private resultIcon;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get (or lazily create) the module-level `ReusableWorkflowReporter` singleton.
|
|
127
|
+
* Pass `workflowName` on the first call to initialise it.
|
|
128
|
+
*/
|
|
129
|
+
export declare function getReusableReporter(workflowName?: string): ReusableWorkflowReporter;
|
|
130
|
+
/** Reset the singleton (useful between Jest test suites). */
|
|
131
|
+
export declare function resetReusableReporter(): void;
|
|
132
|
+
/**
|
|
133
|
+
* Per-caller-workflow result produced by MultiWorkflowReporter.
|
|
134
|
+
* Each entry holds the run ID, the reusable-workflow groups, and a rolled-up
|
|
135
|
+
* overall result for that caller.
|
|
136
|
+
*/
|
|
137
|
+
export interface CallerWorkflowResult {
|
|
138
|
+
callerWorkflowName: string;
|
|
139
|
+
runId: number;
|
|
140
|
+
groups: Readonly<{
|
|
141
|
+
[wfName: string]: ReusableWorkflowGroup;
|
|
142
|
+
}>;
|
|
143
|
+
/** Rolled-up result across all reusable groups for this caller workflow. */
|
|
144
|
+
overallResult: 'success' | 'failure' | 'partial_failure' | 'unknown';
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* MultiWorkflowReporter
|
|
148
|
+
*
|
|
149
|
+
* Aggregates reports across N caller workflows in one go.
|
|
150
|
+
*
|
|
151
|
+
* Usage:
|
|
152
|
+
* ```ts
|
|
153
|
+
* const reporter = new MultiWorkflowReporter([
|
|
154
|
+
* 'Test - ci-scan',
|
|
155
|
+
* 'Test - ci-db-pr',
|
|
156
|
+
* 'Test - scan-snyk',
|
|
157
|
+
* ]);
|
|
158
|
+
* await reporter.loadAll(api); // resolves latest run for each & groups
|
|
159
|
+
* reporter.writeToGithubSummary(); // write aggregated Markdown to CI summary
|
|
160
|
+
* const results = reporter.getResults(); // access per-workflow data in tests
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
export declare class MultiWorkflowReporter {
|
|
164
|
+
private workflowNames;
|
|
165
|
+
private results;
|
|
166
|
+
constructor(workflowNames: string[]);
|
|
167
|
+
/**
|
|
168
|
+
* For every workflow name:
|
|
169
|
+
* 1. Resolve the latest run ID via `api.getLatestRun`.
|
|
170
|
+
* 2. Create a `ReusableWorkflowReporter` instance and call `loadAndGroup`.
|
|
171
|
+
* 3. Store the groups and compute a rolled-up result.
|
|
172
|
+
*
|
|
173
|
+
* Runs sequentially to stay within GitHub API rate limits.
|
|
174
|
+
*/
|
|
175
|
+
loadAll(api: GitHubAPI): Promise<void>;
|
|
176
|
+
/** All loaded results keyed by caller workflow name. */
|
|
177
|
+
getResults(): Readonly<{
|
|
178
|
+
[callerName: string]: CallerWorkflowResult;
|
|
179
|
+
}>;
|
|
180
|
+
/** Convenience: result for a single named caller workflow. */
|
|
181
|
+
getResult(workflowName: string): CallerWorkflowResult | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* Assert that every reusable-workflow group across ALL caller workflows
|
|
184
|
+
* succeeded. Throws with a full cross-workflow summary on any failure.
|
|
185
|
+
*/
|
|
186
|
+
assertAllCallerGroupsSucceed(): void;
|
|
187
|
+
/**
|
|
188
|
+
* Assert that every direct (caller-defined) job across ALL caller workflows
|
|
189
|
+
* succeeded.
|
|
190
|
+
*/
|
|
191
|
+
assertAllCallerDirectJobsSucceed(): void;
|
|
192
|
+
/**
|
|
193
|
+
* Assert that every step across ALL caller workflows and ALL reusable groups
|
|
194
|
+
* has an acceptable conclusion (`'success'` or `'skipped'`).
|
|
195
|
+
*/
|
|
196
|
+
assertAllCallerStepsAcceptable(): void;
|
|
197
|
+
generateMarkdown(): string;
|
|
198
|
+
/** Write the aggregated report to `GITHUB_STEP_SUMMARY` and print to console. */
|
|
199
|
+
writeToGithubSummary(): void;
|
|
200
|
+
private computeCallerResult;
|
|
201
|
+
private aggregateCounts;
|
|
202
|
+
private resultIcon;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Get (or lazily create) the module-level `MultiWorkflowReporter` singleton.
|
|
206
|
+
* Pass `workflowNames` on the first call to initialise it.
|
|
207
|
+
*/
|
|
208
|
+
export declare function getMultiWorkflowReporter(workflowNames?: string[]): MultiWorkflowReporter;
|
|
209
|
+
/** Reset the multi-workflow singleton (useful between Jest test suites). */
|
|
210
|
+
export declare function resetMultiWorkflowReporter(): void;
|
|
211
|
+
//# sourceMappingURL=reusable_reporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reusable_reporter.d.ts","sourceRoot":"","sources":["../src/reusable_reporter.ts"],"names":[],"mappings":"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"}
|