mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-18 18:16:25 +00:00
Keep the detached release commit and retry-safe package publishes, but drop the draft and tag reuse logic so the release workflow stays focused on preventing dev rewrites while syncing version files back onto the latest dev tip.
37 lines
1.4 KiB
TypeScript
Executable File
37 lines
1.4 KiB
TypeScript
Executable File
#!/usr/bin/env bun
|
|
|
|
import { Script } from "@opencode-ai/script"
|
|
import { $ } from "bun"
|
|
|
|
const output = [`version=${Script.version}`]
|
|
const sha = process.env.GITHUB_SHA ?? (await $`git rev-parse HEAD`.text()).trim()
|
|
|
|
if (!Script.preview) {
|
|
await $`bun script/changelog.ts --to ${sha}`.cwd(process.cwd())
|
|
const file = `${process.cwd()}/UPCOMING_CHANGELOG.md`
|
|
const body = await Bun.file(file)
|
|
.text()
|
|
.catch(() => "No notable changes")
|
|
const dir = process.env.RUNNER_TEMP ?? "/tmp"
|
|
const notesFile = `${dir}/opencode-release-notes.txt`
|
|
await Bun.write(notesFile, body)
|
|
await $`gh release create v${Script.version} -d --target ${sha} --title "v${Script.version}" --notes-file ${notesFile}`
|
|
const release = await $`gh release view v${Script.version} --json tagName,databaseId`.json()
|
|
output.push(`release=${release.databaseId}`)
|
|
output.push(`tag=${release.tagName}`)
|
|
} else if (Script.channel === "beta") {
|
|
await $`gh release create v${Script.version} -d --target ${sha} --title "v${Script.version}" --repo ${process.env.GH_REPO}`
|
|
const release =
|
|
await $`gh release view v${Script.version} --json tagName,databaseId --repo ${process.env.GH_REPO}`.json()
|
|
output.push(`release=${release.databaseId}`)
|
|
output.push(`tag=${release.tagName}`)
|
|
}
|
|
|
|
output.push(`repo=${process.env.GH_REPO}`)
|
|
|
|
if (process.env.GITHUB_OUTPUT) {
|
|
await Bun.write(process.env.GITHUB_OUTPUT, output.join("\n"))
|
|
}
|
|
|
|
process.exit(0)
|