From cfbbae73236913794c2c63a469849cd6c88470a9 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 18 Apr 2026 18:59:31 -0400 Subject: [PATCH] ci --- script/publish.ts | 53 ++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/script/publish.ts b/script/publish.ts index d1141c8f7e..4d90bd9687 100644 --- a/script/publish.ts +++ b/script/publish.ts @@ -8,7 +8,6 @@ console.log("=== publishing ===\n") const dir = fileURLToPath(new URL("..", import.meta.url)) process.chdir(dir) - const tag = `v${Script.version}` const pkgjsons = await Array.fromAsync( @@ -17,54 +16,56 @@ const pkgjsons = await Array.fromAsync( }), ).then((arr) => arr.filter((x) => !x.includes("node_modules") && !x.includes("dist"))) +async function prepareReleaseFiles() { + for (const file of pkgjsons) { + let pkg = await Bun.file(file).text() + pkg = pkg.replaceAll(/"version": "[^"]+"/g, `"version": "${Script.version}"`) + console.log("updated:", file) + await Bun.file(file).write(pkg) + } + + const extensionToml = fileURLToPath(new URL("../packages/extensions/zed/extension.toml", import.meta.url)) + let toml = await Bun.file(extensionToml).text() + toml = toml.replace(/^version = "[^"]+"/m, `version = "${Script.version}"`) + toml = toml.replaceAll(/releases\/download\/v[^/]+\//g, `releases/download/v${Script.version}/`) + console.log("updated:", extensionToml) + await Bun.file(extensionToml).write(toml) + + await $`bun install` + await $`./packages/sdk/js/script/build.ts` +} + if (Script.release && !Script.preview) { await $`git fetch origin --tags` await $`git switch --detach` } -for (const file of pkgjsons) { - let pkg = await Bun.file(file).text() - pkg = pkg.replaceAll(/"version": "[^"]+"/g, `"version": "${Script.version}"`) - console.log("updated:", file) - await Bun.file(file).write(pkg) -} - -const extensionToml = fileURLToPath(new URL("../packages/extensions/zed/extension.toml", import.meta.url)) -let toml = await Bun.file(extensionToml).text() -toml = toml.replace(/^version = "[^"]+"/m, `version = "${Script.version}"`) -toml = toml.replaceAll(/releases\/download\/v[^/]+\//g, `releases/download/v${Script.version}/`) -console.log("updated:", extensionToml) -await Bun.file(extensionToml).write(toml) - -await $`bun install` -await import(`../packages/sdk/js/script/build.ts`) -process.chdir(dir) +await prepareReleaseFiles() console.log("\n=== cli ===\n") -await import(`../packages/opencode/script/publish.ts`) +await $`bun ./packages/opencode/script/publish.ts` console.log("\n=== sdk ===\n") -await import(`../packages/sdk/js/script/publish.ts`) +await $`bun ./packages/sdk/js/script/publish.ts` console.log("\n=== plugin ===\n") -await import(`../packages/plugin/script/publish.ts`) +await $`bun ./packages/plugin/script/publish.ts` if (Script.release) { - await import(`../packages/desktop/scripts/finalize-latest-json.ts`) - await import(`../packages/desktop-electron/scripts/finalize-latest-yml.ts`) + await $`bun ./packages/desktop/scripts/finalize-latest-json.ts` + await $`bun ./packages/desktop-electron/scripts/finalize-latest-yml.ts` } if (Script.release && !Script.preview) { - process.chdir(dir) await $`git commit -am "release: ${tag}"` - const releaseCommit = (await $`git rev-parse HEAD`.text()).trim() await $`git tag -d ${tag}`.nothrow() await $`git tag ${tag}` await $`git push origin refs/tags/${tag} --force-with-lease --no-verify` await new Promise((resolve) => setTimeout(resolve, 5_000)) await $`git fetch origin` await $`git checkout -B dev origin/dev` - await $`git cherry-pick ${releaseCommit}` + await prepareReleaseFiles() + await $`git commit -am "sync release versions for ${tag}"` await $`git push origin HEAD:dev --no-verify` }