mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-15 03:53:16 +08:00
🌱 构建脚本
This commit is contained in:
61
scripts/auto-build.ts
Normal file
61
scripts/auto-build.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* 本地构建脚本
|
||||
* @since Beta v0.9.1
|
||||
*/
|
||||
import { resolve } from "path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import pkgJson from "../package.json" with { type: "json" };
|
||||
import { execSync } from "child_process";
|
||||
import { parse, stringify } from "envfile";
|
||||
import { readFileSync, writeFileSync } from "fs";
|
||||
|
||||
const __dirname = resolve(fileURLToPath(import.meta.url), "../");
|
||||
|
||||
// 判断是否GithubAction
|
||||
const isGitHubActions = process.env.GITHUB_ACTIONS === "true";
|
||||
|
||||
// 获取版本
|
||||
const pkgVersion = pkgJson.version;
|
||||
|
||||
// 获取提交哈希
|
||||
const commitHash = execSync("git rev-parse --short HEAD").toString().trim();
|
||||
|
||||
// 获取当前平台
|
||||
let platform = "unknown";
|
||||
if (process.platform === "win32") {
|
||||
platform = "windows";
|
||||
} else if (process.platform === "darwin") {
|
||||
platform = process.arch === "arm64" ? "macos-arm" : "macos-intel";
|
||||
} else {
|
||||
platform = `${process.platform}-${process.arch}`;
|
||||
}
|
||||
|
||||
// 构建 Release 字符串
|
||||
const release = `TeyvatGuide@${pkgVersion}_${commitHash}_${platform}`;
|
||||
console.log(`🍄 gen sentry release ${release}`);
|
||||
|
||||
// 修改 .env.production
|
||||
const envPath = resolve(__dirname, "../.env.production");
|
||||
const envRead = parse(readFileSync(envPath, "utf-8"));
|
||||
envRead.VITE_SENTRY_RELEASE = release;
|
||||
writeFileSync(envPath, stringify(envRead), "utf-8");
|
||||
console.log("✅ .env.production updated!");
|
||||
|
||||
// 执行 pnpm build
|
||||
execSync("pnpm tauri build", { stdio: "inherit" });
|
||||
|
||||
// 上传pdb
|
||||
if (isGitHubActions) {
|
||||
process.exit();
|
||||
}
|
||||
const pdbGlob = "src-tauri/target/release/TeyvatGuide.pdb";
|
||||
try {
|
||||
console.log(`📦 Uploading PDBs from ${pdbGlob}...`);
|
||||
execSync(`sentry-cli releases new "${release}"`, { stdio: "inherit" });
|
||||
execSync(`sentry-cli upload-dif ${pdbGlob}`, { stdio: "inherit" });
|
||||
execSync(`sentry-cli releases finalize "${release}"`, { stdio: "inherit" });
|
||||
console.log("✅ PDB upload complete!");
|
||||
} catch (err) {
|
||||
console.error("❌ Failed to upload PDBs:", err);
|
||||
process.exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user