Files
desktop/ci-scripts/generate-updates-json.ts
zooqueenandHanzo Dev 22fbbafb3c ci(release): add arm64 Linux build on spark home runner
Add aarch64-unknown-linux-gnu to the release matrix (built on spark), with fail-fast:false so an unvalidated arm64 build never blocks the other platforms. Linux build/deps steps now gate on contains(matrix.arch,'linux'); updater manifest gains an optional linux-aarch64 platform. NOTE: arm64 Linux build itself needs a CI release run to validate (side-binary availability + spark build deps).

Co-authored-by: Hanzo Dev <[email protected]>
2026-06-01 21:56:27 -07:00

53 lines
1.4 KiB
TypeScript
Executable File

import fs from 'fs';
import { formatRFC3339 } from 'date-fns';
import z from 'zod';
const envSchema = z.object({
JSON_PATH: z.string().min(1),
VERSION: z.string().min(5),
NOTES: z.string().min(1),
PUB_DATE: z.string().optional(),
DARWIN_AARCH64_SIGNATURE: z.string().min(1),
DARWIN_AARCH64_URL: z.string().url(),
LINUX_x86_64_SIGNATURE: z.string().min(1),
LINUX_x86_64_URL: z.string().url(),
LINUX_AARCH64_SIGNATURE: z.string().optional(),
LINUX_AARCH64_URL: z.string().url().optional(),
WINDOWS_x86_64_SIGNATURE: z.string().min(1),
WINDOWS_x86_64_URL: z.string().url(),
});
type Env = z.infer<typeof envSchema>;
const env: Env = envSchema.parse(process.env);
const updatesJson = {
version: env.VERSION,
notes: env.NOTES,
pub_date: env.PUB_DATE || formatRFC3339(new Date()),
platforms: {
'darwin-aarch64': {
signature: env.DARWIN_AARCH64_SIGNATURE,
url: env.DARWIN_AARCH64_URL,
},
'linux-x86_64': {
signature: env.LINUX_x86_64_SIGNATURE,
url: env.LINUX_x86_64_URL,
},
...(env.LINUX_AARCH64_SIGNATURE && env.LINUX_AARCH64_URL
? {
'linux-aarch64': {
signature: env.LINUX_AARCH64_SIGNATURE,
url: env.LINUX_AARCH64_URL,
},
}
: {}),
'windows-x86_64': {
signature: env.WINDOWS_x86_64_SIGNATURE,
url: env.WINDOWS_x86_64_URL,
},
},
};
fs.writeFileSync(env.JSON_PATH, JSON.stringify(updatesJson, null, 2));