Skip to content

Commit 19d146a

Browse files
committed
scripts: poll for draft release
It may not immediately be returned in the API
1 parent 591f884 commit 19d146a

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

scripts/src/release.ts

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -355,24 +355,29 @@ function extractChangelogContent(version: string): string {
355355
return match[1].trim();
356356
}
357357

358-
function updateAndPublishRelease(version: string): void {
359-
logStarted("Updating draft release...");
360-
358+
async function updateAndPublishRelease(version: string): Promise<void> {
361359
const changelogContent = extractChangelogContent(version);
362360

363-
// Get the draft release
364-
const releases = exec(`gh release list --json tagName,isDraft,name -L 10`, { silent: true });
365-
const releaseList = JSON.parse(releases) as Array<{
366-
tagName: string;
367-
isDraft: boolean;
368-
name: string;
369-
}>;
361+
logStarted("Waiting for draft release to appear...");
362+
const timeoutMinutes = 5;
370363

371-
const draftRelease = releaseList.find((r) => r.isDraft && r.tagName === version);
364+
await pollUntil(
365+
() => {
366+
const releases = exec(`gh release list --json tagName,isDraft,name -L 10`, { silent: true });
367+
const releaseList = JSON.parse(releases) as Array<{
368+
tagName: string;
369+
isDraft: boolean;
370+
name: string;
371+
}>;
372372

373-
if (!draftRelease) {
374-
error(`Could not find draft release for tag ${version}. Please check GitHub releases.`);
375-
}
373+
const draftRelease = releaseList.find((r) => r.isDraft && r.tagName === version);
374+
return draftRelease !== undefined;
375+
},
376+
{
377+
timeoutMs: timeoutMinutes * 60 * MS_PER_SECOND,
378+
intervalMs: POLL_INTERVAL_MS,
379+
},
380+
);
376381

377382
logCompleted("Draft release found");
378383

@@ -411,7 +416,7 @@ async function main(): Promise<void> {
411416
pullLatestMaster();
412417
createAndPushTag(version);
413418
await waitForReleaseBuild(version);
414-
updateAndPublishRelease(version);
419+
await updateAndPublishRelease(version);
415420

416421
logCompleted(`Release process for version ${version} completed successfully!`);
417422
}

0 commit comments

Comments
 (0)