import { mkdir, readFile, writeFile } from "node:fs/promises"; import process from "node:process"; const packageJson = JSON.parse(await readFile("package.json", "utf8")); const packageManagerVersion = packageJson.packageManager.split("@").at(-1); const buildId = process.env.VITE_BUILD_ID ?? "local-build"; const commitSha = process.env.VITE_COMMIT_SHA ?? "local"; const runnerImage = process.env.CI_RUNNER_IMAGE ?? `${process.platform}-${process.arch}`; const manifest = { schemaVersion: 1, buildId, commitSha, generatedAt: new Date().toISOString(), buildContext: { nodeVersion: process.version, packageManagerVersion, runnerImage, }, outputs: { directory: "dist", viteManifest: "dist/.vite/manifest.json", }, }; await mkdir("artifacts/release", { recursive: true }); await writeFile( "artifacts/release/build-manifest.json", `${JSON.stringify(manifest, null, 2)}\n`, );