feat: add hak build pipeline
This commit is contained in:
@@ -3,6 +3,7 @@ import {
|
||||
buildModule,
|
||||
hotReloadScripts,
|
||||
compileSingle,
|
||||
buildHaks,
|
||||
} from "../services/build.service.js";
|
||||
|
||||
const router = Router();
|
||||
@@ -47,4 +48,13 @@ router.post("/compile-single", async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
router.post("/haks", async (_req, res) => {
|
||||
try {
|
||||
const result = await buildHaks();
|
||||
res.json(result);
|
||||
} catch (err: any) {
|
||||
res.status(500).json({ error: err.message });
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -93,3 +93,30 @@ export async function compileSingle(
|
||||
|
||||
return { success: result.success, errors };
|
||||
}
|
||||
|
||||
export async function buildHaks(): Promise<{
|
||||
success: boolean;
|
||||
output: string;
|
||||
}> {
|
||||
const workspacePath = getWorkspacePath();
|
||||
|
||||
broadcast("build", "start", { type: "haks" });
|
||||
|
||||
const result = await runEphemeralContainer({
|
||||
image: "layonara-builder",
|
||||
cmd: ["layonara_nwn", "hak", "--yes"],
|
||||
binds: [
|
||||
`${workspacePath}/repos/nwn-haks:/build/nwn-haks`,
|
||||
`${workspacePath}/server/hak:/output/hak`,
|
||||
`${workspacePath}/server/tlk:/output/tlk`,
|
||||
],
|
||||
workingDir: "/build/nwn-haks",
|
||||
});
|
||||
|
||||
const success = result.statusCode === 0;
|
||||
broadcast("build", success ? "complete" : "failed", {
|
||||
type: "haks",
|
||||
exitCode: result.statusCode,
|
||||
});
|
||||
return { success, output: result.output };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user