mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-04 12:53:34 +00:00
chore(ios): generate release artifacts locally
This commit is contained in:
@@ -1328,8 +1328,6 @@ describe("scripts/changed-lanes", () => {
|
||||
"apps/android/fastlane/metadata/android/en-US/release_notes.txt",
|
||||
"apps/android/version.json",
|
||||
"apps/ios/CHANGELOG.md",
|
||||
"apps/ios/Config/Version.xcconfig",
|
||||
"apps/ios/fastlane/metadata/en-US/release_notes.txt",
|
||||
"apps/macos/Sources/OpenClaw/Resources/Info.plist",
|
||||
"docs/.generated/config-baseline.sha256",
|
||||
"package.json",
|
||||
|
||||
@@ -10,13 +10,13 @@ describe("check-release-metadata-only", () => {
|
||||
"--head",
|
||||
"HEAD",
|
||||
"./package.json",
|
||||
"apps\\ios\\Config\\Version.xcconfig",
|
||||
"apps\\ios\\CHANGELOG.md",
|
||||
]),
|
||||
).toEqual({
|
||||
staged: false,
|
||||
base: "origin/release",
|
||||
head: "HEAD",
|
||||
paths: ["package.json", "apps/ios/Config/Version.xcconfig"],
|
||||
paths: ["package.json", "apps/ios/CHANGELOG.md"],
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -16,30 +16,15 @@ export function writeIosFixture(params: {
|
||||
version?: string;
|
||||
changelog: string;
|
||||
packageVersion?: string;
|
||||
releaseNotes?: string;
|
||||
versionXcconfig?: string;
|
||||
prefix?: string;
|
||||
}): string {
|
||||
const rootDir = makeTempDir(tempDirs, params.prefix ?? "openclaw-ios-version-");
|
||||
fs.mkdirSync(path.join(rootDir, "apps", "ios", "Config"), { recursive: true });
|
||||
fs.mkdirSync(path.join(rootDir, "apps", "ios", "fastlane", "metadata", "en-US"), {
|
||||
recursive: true,
|
||||
});
|
||||
fs.mkdirSync(path.join(rootDir, "apps", "ios"), { recursive: true });
|
||||
fs.writeFileSync(
|
||||
path.join(rootDir, "package.json"),
|
||||
`${JSON.stringify({ version: params.packageVersion ?? params.version ?? "2026.4.6" }, null, 2)}\n`,
|
||||
"utf8",
|
||||
);
|
||||
fs.writeFileSync(path.join(rootDir, "apps", "ios", "CHANGELOG.md"), params.changelog, "utf8");
|
||||
fs.writeFileSync(
|
||||
path.join(rootDir, "apps", "ios", "Config", "Version.xcconfig"),
|
||||
params.versionXcconfig ?? "",
|
||||
"utf8",
|
||||
);
|
||||
fs.writeFileSync(
|
||||
path.join(rootDir, "apps", "ios", "fastlane", "metadata", "en-US", "release_notes.txt"),
|
||||
params.releaseNotes ?? "",
|
||||
"utf8",
|
||||
);
|
||||
return rootDir;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import {
|
||||
normalizeGatewayVersionToPinnedIosVersion,
|
||||
normalizePinnedIosVersion,
|
||||
renderIosReleaseNotes,
|
||||
renderIosVersionXcconfig,
|
||||
resolveGatewayVersionForIosRelease,
|
||||
resolveIosVersion,
|
||||
} from "../../scripts/lib/ios-version.ts";
|
||||
@@ -99,6 +98,35 @@ describe("resolveIosVersion", () => {
|
||||
expect(result.stderr).toBe("");
|
||||
});
|
||||
|
||||
it("prints derived release notes from the CLI", () => {
|
||||
const rootDir = writeIosFixture({
|
||||
packageVersion: "2026.4.6",
|
||||
changelog: "# OpenClaw iOS Changelog\n\n## 2026.4.7\n\nGenerated notes.\n",
|
||||
});
|
||||
const result = spawnSync(
|
||||
process.execPath,
|
||||
[
|
||||
"--import",
|
||||
"tsx",
|
||||
"scripts/ios-version.ts",
|
||||
"--root",
|
||||
rootDir,
|
||||
"--version",
|
||||
"2026.4.7",
|
||||
"--field",
|
||||
"releaseNotes",
|
||||
],
|
||||
{
|
||||
cwd: process.cwd(),
|
||||
encoding: "utf8",
|
||||
},
|
||||
);
|
||||
|
||||
expect(result.status).toBe(0);
|
||||
expect(result.stdout).toBe("Generated notes.\n");
|
||||
expect(result.stderr).toBe("");
|
||||
});
|
||||
|
||||
it("rejects missing iOS sync CLI root values before reading version files", () => {
|
||||
const result = spawnSync(
|
||||
process.execPath,
|
||||
@@ -136,10 +164,8 @@ describe("resolveIosVersion", () => {
|
||||
canonicalVersion: "2026.4.6",
|
||||
changelogPath: path.join(rootDir, "apps/ios/CHANGELOG.md"),
|
||||
marketingVersion: "2026.4.6",
|
||||
releaseNotesPath: path.join(rootDir, "apps/ios/fastlane/metadata/en-US/release_notes.txt"),
|
||||
versionSource: "package",
|
||||
versionSourcePath: path.join(rootDir, "package.json"),
|
||||
versionXcconfigPath: path.join(rootDir, "apps/ios/Config/Version.xcconfig"),
|
||||
});
|
||||
});
|
||||
|
||||
@@ -212,20 +238,6 @@ describe("gateway version normalization", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("renderIosVersionXcconfig", () => {
|
||||
it("renders checked-in defaults from the package-derived iOS version", () => {
|
||||
const rootDir = writeIosFixture({
|
||||
packageVersion: "2026.4.8",
|
||||
changelog: "# OpenClaw iOS Changelog\n\n## 2026.4.8\n\nNotes.\n",
|
||||
});
|
||||
const version = resolveIosVersion(rootDir);
|
||||
|
||||
expect(renderIosVersionXcconfig(version)).toContain("OPENCLAW_IOS_VERSION = 2026.4.8");
|
||||
expect(renderIosVersionXcconfig(version)).toContain("OPENCLAW_MARKETING_VERSION = 2026.4.8");
|
||||
expect(renderIosVersionXcconfig(version)).toContain("OPENCLAW_BUILD_VERSION = 1");
|
||||
});
|
||||
});
|
||||
|
||||
describe("release note extraction", () => {
|
||||
it("extracts exact pinned version sections first", () => {
|
||||
const rootDir = writeIosFixture({
|
||||
|
||||
Reference in New Issue
Block a user