-
-
Notifications
You must be signed in to change notification settings - Fork 120
/
Copy pathresolveNextReleaseVersion.ts
45 lines (37 loc) · 1.14 KB
/
resolveNextReleaseVersion.ts
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
import path from "path";
import {fileURLToPath} from "url";
import semanticRelease from "semantic-release";
import yargs from "yargs";
import {hideBin} from "yargs/helpers";
import fs from "fs-extra";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const argv = await yargs(hideBin(process.argv))
.option("saveReleaseToFile", {
type: "string"
})
.option("saveVersionToFile", {
type: "string"
})
.argv;
const {saveReleaseToFile, saveVersionToFile} = argv;
const res = await semanticRelease({
dryRun: true
}, {
cwd: path.join(__dirname, "..")
});
if (saveReleaseToFile != null) {
const resolvedPath = path.resolve(process.cwd(), saveReleaseToFile);
console.info("Writing release to file:", resolvedPath);
await fs.writeFile(resolvedPath, JSON.stringify(res), "utf8");
}
if (saveVersionToFile != null) {
const resolvedPath = path.resolve(process.cwd(), saveVersionToFile);
console.info("Writing version to file:", resolvedPath);
await fs.writeFile(
resolvedPath,
res === false
? "false"
: res.nextRelease.version,
"utf8"
);
}