mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-14 20:21:39 +03:00
21 lines
1.1 KiB
TypeScript
21 lines
1.1 KiB
TypeScript
// Writes src/lib/build-stamp.json, the view-source comment's build line (src/lib/source-logo.ts):
|
|
// the release version from package.json (the release workflow syncs it), the short commit
|
|
// (GITHUB_SHA in the deploy workflow, else the local HEAD) and the UTC build date, or "dev" with --dev,
|
|
// and a build id unique to this build.
|
|
import path from "node:path"
|
|
|
|
const root = path.resolve(import.meta.dir, "..")
|
|
const pkg = await Bun.file(path.join(root, "package.json")).json()
|
|
const sha =
|
|
process.env.GITHUB_SHA || Bun.spawnSync(["git", "rev-parse", "HEAD"], { cwd: root }).stdout.toString().trim()
|
|
const stamp = {
|
|
version: pkg.version,
|
|
commit: sha.slice(0, 7) || "unknown",
|
|
date: process.argv.includes("--dev") ? "dev" : new Date().toISOString().slice(0, 10),
|
|
// Unique per build: part of the Worker's HTML cache key (lib/html-cache.ts), so a deploy never
|
|
// serves pages cached by the previous one.
|
|
build: `${sha.slice(0, 7) || "unknown"}-${Date.now().toString(36)}`,
|
|
}
|
|
await Bun.write(path.join(root, "src/lib/build-stamp.json"), JSON.stringify(stamp) + "\n")
|
|
console.log(`build stamp: v${stamp.version} · ${stamp.commit} · ${stamp.date}`)
|