forked from OKEAMAH/prettier
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun.js
More file actions
80 lines (75 loc) · 1.86 KB
/
Copy pathrun.js
File metadata and controls
80 lines (75 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import semver from "semver";
import parseArguments from "./parse-arguments.js";
import * as steps from "./steps/index.js";
import { logPromise, readJson, runGit } from "./utils.js";
const params = parseArguments();
const { stdout: previousVersion } = await runGit([
"describe",
"--tags",
"--abbrev=0",
]);
if (semver.parse(previousVersion) === null) {
throw new Error(`Unexpected previousVersion: ${previousVersion}`);
} else {
params.previousVersion = previousVersion;
params.previousVersionOnDefaultBranch = (
await readJson("package.json")
).version;
}
for (let step of [
{
process: steps.chooseVersion,
skip: Boolean(params.version),
},
{
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: "Linting files",
process: steps.lintFiles,
skip: params.dry,
},
{
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,
steps.updateDependentsCount,
steps.bumpPrettier,
{
name: "Cleaning changelog",
process: steps.cleanChangelog,
skip: params.dry || params.next,
},
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();
}
}