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
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import { parseReleaseTag } from "./releaseConfig.mjs";
|
|
|
|
function normalizeSemverLikeVersion(value) {
|
|
const normalized = value.trim().replace(/^v/u, "");
|
|
return /^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/u.test(normalized)
|
|
? normalized
|
|
: null;
|
|
}
|
|
|
|
function normalizePrereleaseIdentifier(value) {
|
|
return value
|
|
.trim()
|
|
.replace(/[^0-9A-Za-z.-]+/gu, "-")
|
|
.replace(/^[.-]+/u, "")
|
|
.replace(/[.-]+$/u, "");
|
|
}
|
|
|
|
export function normalizeDesktopGitDescribeVersion(value) {
|
|
const normalized = typeof value === "string" ? value.trim() : "";
|
|
if (!normalized) {
|
|
return null;
|
|
}
|
|
|
|
const releaseVersion = parseReleaseTag(normalized);
|
|
if (releaseVersion) {
|
|
return releaseVersion;
|
|
}
|
|
|
|
const semverLike = normalizeSemverLikeVersion(normalized);
|
|
if (semverLike) {
|
|
return semverLike;
|
|
}
|
|
|
|
const prerelease = normalizePrereleaseIdentifier(normalized);
|
|
return prerelease ? `0.0.0-${prerelease}` : null;
|
|
}
|
|
|
|
export function resolveDesktopBuildVersion({
|
|
describeVersion = "",
|
|
fallbackVersion = "",
|
|
releaseTag = ""
|
|
} = {}) {
|
|
return (
|
|
normalizeDesktopGitDescribeVersion(releaseTag) ??
|
|
normalizeDesktopGitDescribeVersion(describeVersion) ??
|
|
normalizeDesktopGitDescribeVersion(fallbackVersion)
|
|
);
|
|
}
|