2026-09-23 13:09:48 +08:00
|
|
|
import * as verkit from "verkit";
|
2022-10-12 12:45:37 +08:00
|
|
|
import parseArguments from "./parse-arguments.js";
|
2022-10-14 17:17:47 +08:00
|
|
|
import * as steps from "./steps/index.js";
|
2025-12-01 07:25:25 +08:00
|
|
|
import { logPromise, readJson } from "./utilities.js";
|
2022-10-12 12:45:37 +08:00
|
|
|
|
2022-10-14 17:17:47 +08:00
|
|
|
const params = parseArguments();
|
2025-06-23 09:31:26 +08:00
|
|
|
const {
|
|
|
|
|
default: { version: previousVersion },
|
2026-09-23 13:09:48 +08:00
|
|
|
} = await import("prettier/package.json", { with: { type: "json" } });
|
|
|
|
|
if (!verkit.isValid(previousVersion)) {
|
2022-10-14 17:17:47 +08:00
|
|
|
throw new Error(`Unexpected previousVersion: ${previousVersion}`);
|
2022-10-12 12:45:37 +08:00
|
|
|
}
|
|
|
|
|
|
2026-06-16 02:46:43 +08:00
|
|
|
params.previousVersion = previousVersion;
|
|
|
|
|
params.previousVersionOnDefaultBranch = (
|
|
|
|
|
await readJson("package.json")
|
|
|
|
|
).version;
|
|
|
|
|
|
2022-10-14 17:17:47 +08:00
|
|
|
for (let step of [
|
2024-06-18 08:25:54 +08:00
|
|
|
{
|
|
|
|
|
process: steps.chooseVersion,
|
|
|
|
|
skip: Boolean(params.version),
|
|
|
|
|
},
|
2026-06-27 18:37:38 +08:00
|
|
|
{
|
|
|
|
|
name: "Validating new version",
|
|
|
|
|
process: steps.validateNewVersion,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Checking git status",
|
|
|
|
|
process: steps.checkGitStatus,
|
|
|
|
|
skip: params.dry,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Installing NPM dependencies",
|
|
|
|
|
process: steps.installDependencies,
|
|
|
|
|
skip: params.dry || params.skipDependenciesInstall || !params.manual,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Bumping version",
|
|
|
|
|
process: steps.updateVersion,
|
|
|
|
|
skip: params.dry,
|
|
|
|
|
},
|
|
|
|
|
steps.generateBundles,
|
|
|
|
|
steps.updateChangelog,
|
|
|
|
|
{
|
|
|
|
|
name: "Committing and pushing to remote",
|
|
|
|
|
process: steps.pushToGit,
|
|
|
|
|
skip: params.dry,
|
|
|
|
|
},
|
|
|
|
|
params.manual ? steps.publishToNpm : steps.waitForBotRelease,
|
|
|
|
|
steps.showInstructionsAfterNpmPublish,
|
|
|
|
|
{
|
|
|
|
|
name: "Merge release notes PR",
|
|
|
|
|
process: steps.mergeBlogPost,
|
|
|
|
|
},
|
2024-01-08 15:20:27 +09:00
|
|
|
{
|
|
|
|
|
name: "Cleaning changelog",
|
|
|
|
|
process: steps.cleanChangelog,
|
|
|
|
|
skip: params.dry || params.next,
|
|
|
|
|
},
|
2025-03-03 09:08:06 +08:00
|
|
|
steps.bumpPrettier,
|
2022-10-14 17:17:47 +08:00
|
|
|
steps.postPublishSteps,
|
|
|
|
|
]) {
|
|
|
|
|
if (typeof step === "function") {
|
|
|
|
|
step = { process: step };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const runStep = () => step.process(params);
|
|
|
|
|
|
|
|
|
|
if (step.name) {
|
|
|
|
|
await logPromise(step.name, runStep, step.skip);
|
|
|
|
|
} else if (!step.skip) {
|
|
|
|
|
await runStep();
|
|
|
|
|
}
|
|
|
|
|
}
|