Compare commits

..
5 Commits
Author SHA1 Message Date
Dax Raad 54a5d3a9eb sync
release / goreleaser (push) Has been cancelled
2025-06-12 11:56:52 -04:00
Dax Raad 22dc6b6ec9 sync
release / goreleaser (push) Has been cancelled
2025-06-12 11:56:06 -04:00
Dax Raad b5c6ddcd04 tweak
release / goreleaser (push) Has been cancelled
2025-06-12 11:55:07 -04:00
Dax Raad e03ad6c42e sync
release / goreleaser (push) Has been cancelled
2025-06-12 11:18:17 -04:00
Dax Raad 33457d8472 sync
release / goreleaser (push) Has been cancelled
2025-06-12 11:02:51 -04:00
3 changed files with 101 additions and 15 deletions
+5 -6
View File
@@ -28,13 +28,12 @@ jobs:
cache: true
cache-dependency-path: go.sum
- run: go mod download
- uses: goreleaser/goreleaser-action@v6
- uses: oven-sh/setup-bun@v2
with:
distribution: goreleaser
version: latest
args: release --clean
bun-version: 1.2.16
- run: ./script/publish.ts
working-directory: ./packages/opencode
env:
GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}
AUR_KEY: ${{ secrets.AUR_KEY }}
@@ -0,0 +1,23 @@
# Maintainer: dax
# Maintainer: adam
pkgname='opencode-bin'
pkgver={{VERSION}}
pkgrel=1
pkgdesc='The AI coding agent built for the terminal.'
url='https://github.com/sst/opencode'
arch=('aarch64' 'x86_64')
license=('MIT')
provides=('opencode')
conflicts=('opencode')
depends=('fzf' 'ripgrep')
source_aarch64=("${pkgname}_${pkgver}_aarch64.zip::{{ARM64_URL}}")
sha256sums_aarch64=('{{ARM64_SHA}}')
source_x86_64=("${pkgname}_${pkgver}_x86_64.zip::{{X64_URL}}")
sha256sums_x86_64=('{{X64_SHA}}')
package() {
install -Dm755 ./opencode "${pkgdir}/usr/bin/opencode"
}
+73 -9
View File
@@ -1,7 +1,6 @@
#!/usr/bin/env bun
import { $ } from "bun"
import { Glob } from "bun"
import pkg from "../package.json"
@@ -86,12 +85,77 @@ await Bun.file(`./dist/${pkg.name}/package.json`).write(
if (!dry)
await $`cd ./dist/${pkg.name} && npm publish --access public --tag ${npmTag}`
for (const key of Object.keys(optionalDependencies)) {
await $`cd dist/${key}/bin && zip -r ../../${key}.zip *`
}
if (!snapshot) {
// Github Release
for (const key of Object.keys(optionalDependencies)) {
await $`cd dist/${key}/bin && zip -r ../../${key}.zip *`
}
// Upload to GitHub releases
const files = Object.keys(optionalDependencies)
.map((key) => `dist/${key}.zip`)
.join(" ")
await $`gh release create v${version} ${files} --title "Release v${version}" --generate-notes`
const previous = await fetch(
"https://api.github.com/repos/sst/opencode/releases/latest",
)
.then((res) => res.json())
.then((data) => data.tag_name)
const commits = await fetch(
`https://api.github.com/repos/sst/opencode/compare/${previous}...HEAD`,
)
.then((res) => res.json())
.then((data) => data.commits || [])
const notes = commits
.map((commit: any) => `- ${commit.commit.message.split("\n")[0]}`)
.filter((x: string) => {
const lower = x.toLowerCase()
return (
!lower.includes("chore:") &&
!lower.includes("ci:") &&
!lower.includes("docs:")
)
})
.join("\n")
if (!dry)
await $`gh release create v${version} --title "v${version}" --notes ${notes} ./dist/*.zip`
// AUR package
const pkgbuildTemplate = await Bun.file("./script/PKGBUILD.template").text()
const pkgbuild = pkgbuildTemplate
.replace("{{VERSION}}", version.split("-")[0])
.replace(
"{{ARM64_URL}}",
`https://github.com/sst/opencode/releases/download/v${version}/opencode-linux-arm64.zip`,
)
.replace(
"{{ARM64_SHA}}",
await $`sha256sum ./dist/opencode-linux-arm64.zip | cut -d' ' -f1`
.text()
.then((x) => x.trim()),
)
.replace(
"{{X64_URL}}",
`https://github.com/sst/opencode/releases/download/v${version}/opencode-linux-x64.zip`,
)
.replace(
"{{X64_SHA}}",
await $`sha256sum ./dist/opencode-linux-x64.zip | cut -d' ' -f1`
.text()
.then((x) => x.trim()),
)
await $`rm -rf ./dist/aur-opencode-bin`
const gitEnv: Record<string, string> = process.env["AUR_KEY"]
? { GIT_SSH_COMMAND: `ssh -i ${process.env["AUR_KEY"]}` }
: {}
await $`git clone ssh://aur@aur.archlinux.org/opencode-bin.git ./dist/aur-opencode-bin`.env(
gitEnv,
)
await Bun.file("./dist/aur-opencode-bin/PKGBUILD").write(pkgbuild)
await $`cd ./dist/aur-opencode-bin && makepkg --printsrcinfo > .SRCINFO`
await $`cd ./dist/aur-opencode-bin && git add PKGBUILD .SRCINFO`.env(gitEnv)
await $`cd ./dist/aur-opencode-bin && git commit -m "Update to v${version}"`.env(
gitEnv,
)
if (!dry) await $`cd ./dist/aur-opencode-bin && git push`.env(gitEnv)
}