From 8e47278d2a87fab3b8ca65de2e71e5bd21203b21 Mon Sep 17 00:00:00 2001 From: polv Date: Tue, 10 Mar 2026 15:40:10 +0700 Subject: [PATCH] release.js script --- .gitignore | 2 ++ package.json | 1 + release.js | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 release.js diff --git a/.gitignore b/.gitignore index e8ced61..21cdc1e 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,5 @@ target test.db* /tmp +.env +.env.* diff --git a/package.json b/package.json index ff55247..fd24e5e 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "build:android:debug": "tauri android build --debug", "install:android:debug": "adb install -r src-tauri/gen/android/app/build/outputs/apk/universal/debug/app-universal-debug.apk", "run:desktop": ".\\target\\release\\cjdic2.exe", + "release": "node release.js", "dev": "cd src-react && pnpm run dev", "build": "cd src-react && pnpm run build", "tauri": "tauri" diff --git a/release.js b/release.js new file mode 100644 index 0000000..5a127c7 --- /dev/null +++ b/release.js @@ -0,0 +1,30 @@ +import fs from "node:fs"; +import path from "node:path"; +import { spawnSync } from "node:child_process"; + +spawnSync("pnpm", ["run", "build:desktop"], { + stdio: "inherit", + shell: true, +}); +spawnSync("pnpm", ["run", "build:android"], { + stdio: "inherit", + shell: true, +}); + +const file_stem = fs + .readdirSync("target/release/bundle/msi", { withFileTypes: true }) + .sort((f) => { + return fs.statSync(path.join(f.parentPath, f.name)).mtime; + }) + .pop() + .name.split("_x64")[0]; + +const apk_dir = "target/release/bundle/apk"; +try { + fs.mkdirSync(apk_dir); +} catch (e) {} + +fs.copyFileSync( + "src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk", + path.join(apk_dir, `${file_stem}.apk`), +);