Files
MTranServer/scripts/build.ts
xxnuo 103fdffdd4 fix: docker build
Update docker.yml
2026-01-04 10:25:24 +08:00

46 lines
1.6 KiB
TypeScript

import { $ } from "bun";
import pkg from "../package.json";
const version = pkg.version;
const isDocker = Bun.argv.includes("--docker");
const allTargets = [
{ bun: "bun-darwin-x64", name: "darwin-amd64" },
{ bun: "bun-darwin-x64-baseline", name: "darwin-amd64-legacy" },
{ bun: "bun-darwin-arm64", name: "darwin-arm64" },
{ bun: "bun-linux-x64", name: "linux-amd64" },
{ bun: "bun-linux-x64-baseline", name: "linux-amd64-legacy" },
{ bun: "bun-linux-arm64", name: "linux-arm64" },
{ bun: "bun-linux-x64-musl", name: "linux-amd64-musl" },
{ bun: "bun-linux-x64-musl-baseline", name: "linux-amd64-musl-legacy" },
{ bun: "bun-linux-arm64-musl", name: "linux-arm64-musl" },
{ bun: "bun-windows-x64", name: "windows-amd64" },
{ bun: "bun-windows-x64-baseline", name: "windows-amd64-legacy" }
];
const targets = isDocker
? allTargets.filter(t => t.name.includes("musl"))
: allTargets;
console.log("Cleaning dist...");
await $`rm -rf dist`;
await $`mkdir -p dist`;
console.log("Building UI...");
await $`cd ui && bun install && bun run build`;
console.log("Generating UI assets map...");
await $`bun run scripts/gen-ui-assets.ts`;
console.log("Generating routes and spec...");
await $`bun run gen`;
for (const target of targets) {
const ext = target.bun.includes("windows") ? ".exe" : "";
const outfile = `dist/mtranserver-${version}-${target.name}${ext}`;
console.log(`Building for ${target.bun} -> ${outfile}...`);
await $`bun build src/main.ts --compile --target=${target.bun} --outfile=${outfile} --minify --sourcemap`;
}
console.log("Build complete!");