Skip to content

Commit 5998a03

Browse files
committed
refactor(script): display error information after summary
1 parent 220cfa1 commit 5998a03

File tree

1 file changed

+37
-6
lines changed

1 file changed

+37
-6
lines changed

scripts/package_automation.ts

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -551,13 +551,22 @@ async function releaseAction(ctx: Context): Promise<Result<string>> {
551551
/** Results tracking */
552552
class Results {
553553
private packageResults = new Map<string, boolean>();
554+
private packageErrors = new Map<
555+
string,
556+
Array<{ action: string; error: string }>
557+
>();
554558

555559
logSuccess(packageName: string): void {
556560
this.packageResults.set(packageName, true);
557561
}
558562

559-
logFailure(packageName: string): void {
563+
logFailure(packageName: string, action: string, error: string): void {
560564
this.packageResults.set(packageName, false);
565+
566+
if (!this.packageErrors.has(packageName)) {
567+
this.packageErrors.set(packageName, []);
568+
}
569+
this.packageErrors.get(packageName)?.push({ action, error });
561570
}
562571

563572
hasFailures(): boolean {
@@ -576,12 +585,34 @@ class Results {
576585
}
577586
}
578587

579-
return [
588+
const lines = [
580589
separator,
581590
`Successful: ${success.sort().join(" ")}`,
582591
`Failed: ${failed.sort().join(" ")}`,
583592
`Total: ${this.packageResults.size} | Passed: ${success.length} | Failed: ${failed.length}`,
584-
].join("\n");
593+
];
594+
595+
if (failed.length > 0) {
596+
lines.push("", separator, "ERRORS:", separator);
597+
598+
for (const packageName of failed.sort()) {
599+
const errors = this.packageErrors.get(packageName) || [];
600+
lines.push("", `Package: ${packageName}`);
601+
for (const { action, error } of errors) {
602+
lines.push(` Action: ${action}`);
603+
lines.push(
604+
` Error: ${error
605+
.split("\n")
606+
.map((line, i) => (i === 0 ? line : ` ${line}`))
607+
.join("\n")}`,
608+
);
609+
}
610+
}
611+
612+
lines.push("", separator);
613+
}
614+
615+
return lines.join("\n");
585616
}
586617
}
587618

@@ -677,6 +708,7 @@ class PackageExecutor {
677708
const actionFn = ACTION_MAP[actionName];
678709
if (!actionFn) {
679710
log(`Unknown action: ${actionName}`);
711+
results.logFailure(packageName, actionName, "Unknown action");
680712
packageSuccess = false;
681713
break;
682714
}
@@ -687,7 +719,8 @@ class PackageExecutor {
687719
if (result.skipped) {
688720
log(`Skipping ${packageName}: ${result.error}`);
689721
} else {
690-
log(`Failed ${actionName} for ${packageName}: ${result.error}`);
722+
log(`Failed ${actionName} for ${packageName}`);
723+
results.logFailure(packageName, actionName, result.error);
691724
packageSuccess = false;
692725
}
693726
break;
@@ -696,8 +729,6 @@ class PackageExecutor {
696729

697730
if (packageSuccess) {
698731
results.logSuccess(packageName);
699-
} else {
700-
results.logFailure(packageName);
701732
}
702733
};
703734

0 commit comments

Comments
 (0)