mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 18:40:44 +00:00
feat: support alpha releases
This commit is contained in:
@@ -55,6 +55,10 @@ describe("gateway version normalization", () => {
|
||||
expect(normalizeGatewayVersionToPinnedIosVersion("2026.4.6-beta.2")).toBe("2026.4.6");
|
||||
});
|
||||
|
||||
it("strips alpha suffixes when pinning from gateway version", () => {
|
||||
expect(normalizeGatewayVersionToPinnedIosVersion("2026.4.6-alpha.2")).toBe("2026.4.6");
|
||||
});
|
||||
|
||||
it("strips fallback correction suffixes when pinning from gateway version", () => {
|
||||
expect(normalizeGatewayVersionToPinnedIosVersion("2026.4.6-3")).toBe("2026.4.6");
|
||||
});
|
||||
|
||||
@@ -233,6 +233,8 @@ describe("scripts/openclaw-cross-os-release-checks", () => {
|
||||
expect(looksLikeReleaseVersionRef("2026.4.5")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("refs/tags/v2026.4.5-beta.1")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("v2026.4.5-beta.1")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("refs/tags/v2026.4.5-alpha.1")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("v2026.4.5-alpha.1")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("v2026.4.7-1")).toBe(true);
|
||||
expect(looksLikeReleaseVersionRef("main")).toBe(false);
|
||||
expect(looksLikeReleaseVersionRef("codex/cross-os-release-checks")).toBe(false);
|
||||
|
||||
@@ -228,7 +228,7 @@ describe("package artifact reuse", () => {
|
||||
expect(scheduler).toContain('["OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS",');
|
||||
expect(packageJson).toContain("OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1");
|
||||
expect(publishedUpgradeSurvivor).toContain("validate_baseline_package_spec");
|
||||
expect(publishedUpgradeSurvivor).toContain("openclaw@(beta|latest|");
|
||||
expect(publishedUpgradeSurvivor).toContain("openclaw@(alpha|beta|latest|");
|
||||
expect(publishedUpgradeSurvivor).toContain("plugin_deps_cleanup_plugin_dirs");
|
||||
expect(publishedUpgradeSurvivor).toContain('"$(package_root)/extensions/$plugin"');
|
||||
expect(publishedUpgradeSurvivor).toContain("probe_gateway_endpoint");
|
||||
@@ -623,7 +623,7 @@ describe("package artifact reuse", () => {
|
||||
});
|
||||
expectTextToIncludeAll(validateStep.run, [
|
||||
'if [[ -z "${PACKAGE_ARTIFACT_NAME// }" ]]; then',
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
]);
|
||||
expectTextToIncludeAll(runStep.run, [
|
||||
'export OPENCLAW_NPM_TELEGRAM_PACKAGE_TGZ="${package_tgzs[0]}"',
|
||||
|
||||
@@ -11,25 +11,27 @@ import {
|
||||
describe("resolve-openclaw-package-candidate", () => {
|
||||
it("accepts only OpenClaw release package specs for npm candidates", () => {
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@beta")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@alpha")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@latest")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@2026.4.27")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@2026.4.27-1")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@2026.4.27-beta.2")).not.toThrow();
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@2026.4.27-alpha.2")).not.toThrow();
|
||||
|
||||
expect(() => validateOpenClawPackageSpec("@evil/openclaw@1.0.0")).toThrow(
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
);
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@canary")).toThrow(
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
);
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@2026.04.27")).toThrow(
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
);
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@npm:other-package")).toThrow(
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
);
|
||||
expect(() => validateOpenClawPackageSpec("openclaw@file:../other-package.tgz")).toThrow(
|
||||
"package_spec must be openclaw@beta",
|
||||
"package_spec must be openclaw@alpha",
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -21,12 +21,16 @@ const FIXTURE_PATH = path.resolve(TEST_DIR, "../fixtures/telegram-qa-summary-rtt
|
||||
describe("RTT harness", () => {
|
||||
it("validates OpenClaw package specs", () => {
|
||||
expect(validateOpenClawPackageSpec("openclaw@main")).toBe("openclaw@main");
|
||||
expect(validateOpenClawPackageSpec("openclaw@alpha")).toBe("openclaw@alpha");
|
||||
expect(validateOpenClawPackageSpec("openclaw@beta")).toBe("openclaw@beta");
|
||||
expect(validateOpenClawPackageSpec("openclaw@latest")).toBe("openclaw@latest");
|
||||
expect(validateOpenClawPackageSpec("openclaw@2026.4.30")).toBe("openclaw@2026.4.30");
|
||||
expect(validateOpenClawPackageSpec("openclaw@2026.4.30-beta.2")).toBe(
|
||||
"openclaw@2026.4.30-beta.2",
|
||||
);
|
||||
expect(validateOpenClawPackageSpec("openclaw@2026.4.30-alpha.2")).toBe(
|
||||
"openclaw@2026.4.30-alpha.2",
|
||||
);
|
||||
|
||||
expect(() => validateOpenClawPackageSpec("@openclaw/openclaw@beta")).toThrow(
|
||||
/Package spec must be/,
|
||||
|
||||
Reference in New Issue
Block a user