You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
5 months ago
|
import fs from "fs-extra";
|
||
|
import { createRequire } from "module";
|
||
|
import { execSync } from "child_process";
|
||
|
import { resolveUpdateLog } from "./updatelog.mjs";
|
||
|
|
||
|
const require = createRequire(import.meta.url);
|
||
|
|
||
|
// publish
|
||
|
async function resolvePublish() {
|
||
|
const flag = process.argv[2] ?? "patch";
|
||
|
const packageJson = require("../package.json");
|
||
|
const tauriJson = require("../src-tauri/tauri.conf.json");
|
||
|
|
||
|
let [a, b, c] = packageJson.version.split(".").map(Number);
|
||
|
|
||
|
if (flag === "major") {
|
||
|
a += 1;
|
||
|
b = 0;
|
||
|
c = 0;
|
||
|
} else if (flag === "minor") {
|
||
|
b += 1;
|
||
|
c = 0;
|
||
|
} else if (flag === "patch") {
|
||
|
c += 1;
|
||
|
} else throw new Error(`invalid flag "${flag}"`);
|
||
|
|
||
|
const nextVersion = `${a}.${b}.${c}`;
|
||
|
packageJson.version = nextVersion;
|
||
|
tauriJson.package.version = nextVersion;
|
||
|
|
||
|
// 发布更新前先写更新日志
|
||
|
const nextTag = `v${nextVersion}`;
|
||
|
await resolveUpdateLog(nextTag);
|
||
|
|
||
|
await fs.writeFile(
|
||
|
"./package.json",
|
||
|
JSON.stringify(packageJson, undefined, 2)
|
||
|
);
|
||
|
await fs.writeFile(
|
||
|
"./src-tauri/tauri.conf.json",
|
||
|
JSON.stringify(tauriJson, undefined, 2)
|
||
|
);
|
||
|
|
||
|
execSync("git add ./package.json");
|
||
|
execSync("git add ./src-tauri/tauri.conf.json");
|
||
|
execSync(`git commit -m "v${nextVersion}"`);
|
||
|
execSync(`git tag -a v${nextVersion} -m "v${nextVersion}"`);
|
||
|
execSync(`git push`);
|
||
|
execSync(`git push origin v${nextVersion}`);
|
||
|
console.log(`Publish Successfully...`);
|
||
|
}
|
||
|
|
||
|
resolvePublish();
|