From 7a3a21b26e9d4699702b4c8c612793d97e53ee38 Mon Sep 17 00:00:00 2001 From: ckohen Date: Tue, 14 Oct 2025 02:26:11 -0700 Subject: [PATCH] ci(release): better final output (#11177) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/actions/src/releasePackages/index.ts | 18 ++++++++++++++---- .../src/releasePackages/releasePackage.ts | 6 ++++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/actions/src/releasePackages/index.ts b/packages/actions/src/releasePackages/index.ts index a8caa2495..1eee6c199 100644 --- a/packages/actions/src/releasePackages/index.ts +++ b/packages/actions/src/releasePackages/index.ts @@ -50,12 +50,22 @@ const tag = inputTag.length ? inputTag : dev ? 'dev' : undefined; const [packageName] = program.processedArgs as [string]; const tree = await generateReleaseTree(dry, tag, packageName, exclude); +const released: string[] = []; +const skipped: string[] = []; + for (const branch of tree) { startGroup(`Releasing ${branch.map((entry) => `${entry.name}@${entry.version}`).join(', ')}`); - await Promise.all(branch.map(async (release) => releasePackage(release, dry, tag))); + await Promise.all( + branch.map(async (release) => { + const result = await releasePackage(release, dry, tag); + if (result) { + released.push(`${release.name}@${release.version}`); + } else { + skipped.push(`${release.name}@${release.version}`); + } + }), + ); endGroup(); } -info( - `Successfully released ${tree.map((branch) => branch.map((entry) => `${entry.name}@${entry.version}`).join(', ')).join(', ')}`, -); +info(`Successfully released ${released.join(', ')}\nSkipped (already released) ${skipped.join(', ')}`); diff --git a/packages/actions/src/releasePackages/releasePackage.ts b/packages/actions/src/releasePackages/releasePackage.ts index ee7d8a9d2..6cd1b91c9 100644 --- a/packages/actions/src/releasePackages/releasePackage.ts +++ b/packages/actions/src/releasePackages/releasePackage.ts @@ -45,7 +45,7 @@ export async function releasePackage(release: ReleaseEntry, dry: boolean, devTag // Sanity check against the registry first if (await checkRegistry(release)) { info(`${release.name}@${release.version} already published, skipping.`); - return; + return false; } if (dry) { @@ -57,7 +57,7 @@ export async function releasePackage(release: ReleaseEntry, dry: boolean, devTag // && !devTag just to be sure if (doGitRelease && !devTag) await gitTagAndRelease(release, dry); - if (dry) return; + if (dry) return true; const before = performance.now(); @@ -92,4 +92,6 @@ export async function releasePackage(release: ReleaseEntry, dry: boolean, devTag release.name = 'create-discord-app'; await releasePackage(release, dry, devTag, false); } + + return true; }