78 lines
2.1 KiB
JavaScript
78 lines
2.1 KiB
JavaScript
import { execFileSync } from "node:child_process";
|
|
import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
import { resolve } from "node:path";
|
|
|
|
import { frozenRuntime } from "./frozen-versions.mjs";
|
|
|
|
if (
|
|
process.platform !== frozenRuntime.os ||
|
|
process.arch !== frozenRuntime.arch ||
|
|
process.version.slice(1) !== frozenRuntime.node
|
|
) {
|
|
throw new Error("The package smoke must run on the frozen win-x64 Node 24.13.0 runtime.");
|
|
}
|
|
|
|
const runtimeDirectory = resolve(".build/runtime");
|
|
const runtimeNode = resolve(runtimeDirectory, "node.exe");
|
|
mkdirSync(runtimeDirectory, { recursive: true });
|
|
copyFileSync(process.execPath, runtimeNode);
|
|
|
|
const nativeSmoke = JSON.parse(
|
|
execFileSync(runtimeNode, ["scripts/native-smoke.mjs"], { encoding: "utf8" }).trim(),
|
|
);
|
|
const workerSmoke = JSON.parse(
|
|
execFileSync(runtimeNode, ["scripts/worker-smoke.mjs"], { encoding: "utf8" }).trim(),
|
|
);
|
|
|
|
execFileSync(
|
|
"dotnet",
|
|
[
|
|
"restore",
|
|
"supervisor/Dada.Supervisor/Dada.Supervisor.csproj",
|
|
"--configfile",
|
|
"NuGet.Config",
|
|
],
|
|
{ stdio: "inherit" },
|
|
);
|
|
execFileSync(
|
|
"dotnet",
|
|
[
|
|
"build",
|
|
"supervisor/Dada.Supervisor/Dada.Supervisor.csproj",
|
|
"--configuration",
|
|
"Release",
|
|
"--no-restore",
|
|
],
|
|
{ stdio: "inherit" },
|
|
);
|
|
|
|
const supervisorExecutable = resolve(
|
|
"supervisor/Dada.Supervisor/bin/Release/net8.0-windows/Dada.Supervisor.exe",
|
|
);
|
|
if (!existsSync(supervisorExecutable)) {
|
|
throw new Error("The .NET 8 WinForms supervisor executable was not produced.");
|
|
}
|
|
|
|
const result = {
|
|
schema_version: "1.0",
|
|
native: nativeSmoke,
|
|
packagedNodeCandidate: {
|
|
path: ".build/runtime/node.exe",
|
|
version: frozenRuntime.node,
|
|
},
|
|
status: "passed",
|
|
supervisor: {
|
|
build: "passed",
|
|
target: frozenRuntime.dotnetTarget,
|
|
},
|
|
worker: workerSmoke,
|
|
};
|
|
|
|
const evidenceDirectory = process.env.DADA_EVIDENCE_DIR;
|
|
if (evidenceDirectory) {
|
|
mkdirSync(evidenceDirectory, { recursive: true });
|
|
writeFileSync(resolve(evidenceDirectory, "native-smoke.json"), `${JSON.stringify(result, null, 2)}\n`);
|
|
}
|
|
|
|
console.log(JSON.stringify(result, null, 2));
|