Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import { execFileSync } from "node:child_process";
|
|
import { readFile } from "node:fs/promises";
|
|
import { resolve } from "node:path";
|
|
|
|
import { resolveDesktopBuildVersion } from "./lib/desktopBuildVersion.mjs";
|
|
|
|
const appDir = resolve(import.meta.dirname, "..");
|
|
const repoRoot = resolve(appDir, "../..");
|
|
const packageJsonPath = resolve(appDir, "package.json");
|
|
|
|
function readGitDescribeVersion() {
|
|
try {
|
|
return execFileSync(
|
|
"git",
|
|
[
|
|
"describe",
|
|
"--tags",
|
|
"--match",
|
|
"v*",
|
|
"--match",
|
|
"tutti-desktop-v*",
|
|
"--always",
|
|
"--dirty"
|
|
],
|
|
{
|
|
cwd: repoRoot,
|
|
encoding: "utf8",
|
|
stdio: ["ignore", "pipe", "ignore"]
|
|
}
|
|
).trim();
|
|
} catch {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
const packageJson = JSON.parse(await readFile(packageJsonPath, "utf8"));
|
|
const fallbackVersion =
|
|
typeof packageJson.version === "string" ? packageJson.version : "";
|
|
|
|
const version = resolveDesktopBuildVersion({
|
|
describeVersion: readGitDescribeVersion(),
|
|
fallbackVersion,
|
|
releaseTag: process.env.TUTTI_DESKTOP_RELEASE_TAG
|
|
});
|
|
|
|
if (!version) {
|
|
process.stderr.write("Could not resolve desktop build version\n");
|
|
process.exit(1);
|
|
}
|
|
|
|
process.stdout.write(`${version}\n`);
|