Buckets:
| import { Script } from "@opencode-ai/script" | |
| import { $ } from "bun" | |
| import { fileURLToPath } from "url" | |
| 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( | |
| new Bun.Glob("**/package.json").scan({ | |
| absolute: true, | |
| }), | |
| ).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) | |
| } | |
| await $`bun install` | |
| await $`./packages/sdk/js/script/build.ts` | |
| } | |
| if (Script.release && !Script.preview) { | |
| await $`git fetch origin --tags` | |
| await $`git switch --detach` | |
| } | |
| await prepareReleaseFiles() | |
| console.log("\n=== cli ===\n") | |
| await $`bun ./packages/opencode/script/publish.ts` | |
| console.log("\n=== preview cli ===\n") | |
| await $`bun ./packages/cli/script/publish.ts` | |
| console.log("\n=== sdk ===\n") | |
| await $`bun ./packages/sdk/js/script/publish.ts` | |
| console.log("\n=== plugin ===\n") | |
| await $`bun ./packages/plugin/script/publish.ts` | |
| if (Script.release) { | |
| await $`bun ./packages/desktop/scripts/finalize-latest-json.ts` | |
| await $`bun ./packages/desktop/scripts/finalize-latest-yml.ts` | |
| } | |
| if (Script.release && !Script.preview) { | |
| await $`git commit -am "release: ${tag}"` | |
| 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 prepareReleaseFiles() | |
| await $`git commit -am "sync release versions for ${tag}"` | |
| await $`git push origin HEAD:dev --no-verify` | |
| } | |
| if (Script.release) { | |
| await $`gh release edit ${tag} --draft=false --repo ${process.env.GH_REPO}` | |
| } | |
Xet Storage Details
- Size:
- 2.04 kB
- Xet hash:
- ed12e3d5d2b2f25a316229057cc91627e666f283b2695f25b236f57d0b3cb110
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.