源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
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
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
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { resolveDesktopRelease } from "../../apps/desktop/scripts/lib/resolveDesktopRelease.mjs";
|
||||
|
||||
test("stable releases stay latest and are not prereleases", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
explicitVersion: "1.12.20",
|
||||
strategy: "explicit_version",
|
||||
tags: []
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "stable",
|
||||
makeLatest: true,
|
||||
prerelease: false,
|
||||
tag: "v1.12.20",
|
||||
version: "1.12.20"
|
||||
});
|
||||
});
|
||||
|
||||
test("rc releases are marked as prereleases and do not become latest", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
explicitVersion: "1.12.19-rc.0",
|
||||
strategy: "explicit_version",
|
||||
tags: []
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "rc",
|
||||
makeLatest: false,
|
||||
prerelease: true,
|
||||
tag: "v1.12.19-rc.0",
|
||||
version: "1.12.19-rc.0"
|
||||
});
|
||||
});
|
||||
|
||||
test("patch rc releases increment the rc number for the next stable version", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
strategy: "patch_rc",
|
||||
tags: [
|
||||
"tutti-desktop-v1.12.20",
|
||||
"tutti-desktop-v1.12.21-rc.0",
|
||||
"tutti-desktop-v1.12.21-rc.1"
|
||||
]
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "rc",
|
||||
makeLatest: false,
|
||||
prerelease: true,
|
||||
tag: "v1.12.21-rc.2",
|
||||
version: "1.12.21-rc.2"
|
||||
});
|
||||
});
|
||||
|
||||
test("stable patch releases ignore rc tags when resolving the next latest release", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
strategy: "patch",
|
||||
tags: [
|
||||
"tutti-desktop-v1.12.20",
|
||||
"tutti-desktop-v1.12.21-rc.0",
|
||||
"tutti-desktop-v1.12.21-rc.1"
|
||||
]
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "stable",
|
||||
makeLatest: true,
|
||||
prerelease: false,
|
||||
tag: "v1.12.21",
|
||||
version: "1.12.21"
|
||||
});
|
||||
});
|
||||
|
||||
test("beta releases are marked as prereleases and do not become latest", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
explicitVersion: "1.12.22-beta.0",
|
||||
strategy: "explicit_version",
|
||||
tags: []
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "beta",
|
||||
makeLatest: false,
|
||||
prerelease: true,
|
||||
tag: "v1.12.22-beta.0",
|
||||
version: "1.12.22-beta.0"
|
||||
});
|
||||
});
|
||||
|
||||
test("patch beta releases increment the beta number without touching rc tags", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
strategy: "patch_beta",
|
||||
tags: [
|
||||
"tutti-desktop-v1.12.20",
|
||||
"tutti-desktop-v1.12.21-beta.0",
|
||||
"tutti-desktop-v1.12.21-beta.1",
|
||||
"tutti-desktop-v1.12.21-rc.0"
|
||||
]
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "beta",
|
||||
makeLatest: false,
|
||||
prerelease: true,
|
||||
tag: "v1.12.21-beta.2",
|
||||
version: "1.12.21-beta.2"
|
||||
});
|
||||
});
|
||||
|
||||
test("stable patch releases ignore beta tags when resolving the next latest release", () => {
|
||||
const release = resolveDesktopRelease({
|
||||
currentVersion: "0.0.0",
|
||||
strategy: "patch",
|
||||
tags: [
|
||||
"tutti-desktop-v1.12.20",
|
||||
"tutti-desktop-v1.12.21-beta.0",
|
||||
"tutti-desktop-v1.12.21-rc.0"
|
||||
]
|
||||
});
|
||||
|
||||
assert.deepEqual(release, {
|
||||
channel: "stable",
|
||||
makeLatest: true,
|
||||
prerelease: false,
|
||||
tag: "v1.12.21",
|
||||
version: "1.12.21"
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user