Files
test-repo/scripts/release/steps/wait-for-bot-release.js
T

59 lines
1.4 KiB
JavaScript
Raw Normal View History

import styleText from "node-style-text";
2022-05-30 13:44:54 +08:00
import outdent from "outdent";
2025-12-01 07:25:25 +08:00
import { logPromise, waitForEnter } from "../utilities.js";
2022-05-30 13:44:54 +08:00
export async function isVersionReleased(version) {
const response = await fetch("https://registry.npmjs.org/prettier/");
const result = await response.json();
const versionExists = version in result.time;
if (!versionExists) {
throw new Error(`prettier@${version} doesn't exit.`);
}
return versionExists;
}
const sleep = () =>
new Promise((resolve) => {
setTimeout(resolve, 30_000);
});
2023-12-17 22:51:37 +09:00
export default async function waitForBotRelease({ dry, version, next }) {
2022-05-30 13:44:54 +08:00
if (dry) {
return;
}
console.log(
2022-10-14 17:17:47 +08:00
outdent`
1. Go to ${styleText.green.underline(
2023-07-05 21:50:05 +09:00
"https://github.com/prettier/release-workflow/actions/workflows/release.yml",
2022-10-14 17:17:47 +08:00
)}
2. Click "${styleText.green(
2023-07-05 21:50:05 +09:00
"Run workflow",
)}" button, type "${styleText.yellow.underline(
2023-07-05 21:50:05 +09:00
version,
2023-12-17 22:51:37 +09:00
)}" in "Version to release", ${
next ? 'check only "Unstable version"' : "uncheck all checkboxes"
}, hit the "${styleText.bgGreen("Run workflow")}" button.
2023-07-05 21:50:05 +09:00
`,
2022-05-30 13:44:54 +08:00
);
await waitForEnter();
let released = false;
while (!released) {
try {
released = await logPromise(
"Checking release status",
2023-07-05 21:50:05 +09:00
isVersionReleased(version),
2022-05-30 13:44:54 +08:00
);
} catch {
// No op
}
if (!released) {
await logPromise("Wait for 30s", sleep());
}
}
}