summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-12 11:55:07 -0400
committerDax Raad <[email protected]>2025-06-12 11:55:07 -0400
commitb5c6ddcd04daab72221d1c0f2955f993a5ed7f4b (patch)
tree405a529f7795926916f80f75fdf5bf1f8754d40a
parente03ad6c42ea31784576dd9931c91b5b659ab98ea (diff)
downloadopencode-b5c6ddcd04daab72221d1c0f2955f993a5ed7f4b.tar.gz
opencode-b5c6ddcd04daab72221d1c0f2955f993a5ed7f4b.zip
tweak
-rw-r--r--.github/workflows/release.yml10
-rw-r--r--packages/opencode/script/PKGBUILD.template23
-rwxr-xr-xpackages/opencode/script/publish.ts42
3 files changed, 69 insertions, 6 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7bdea6be8..032e839a7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -28,13 +28,11 @@ jobs:
cache: true
cache-dependency-path: go.sum
- - run: go mod download
+ - uses: oven-sh/setup-bun@v2
+ bun-version: 1.2.16
- - uses: goreleaser/goreleaser-action@v6
- with:
- distribution: goreleaser
- version: latest
- args: release --clean
+ - run: ./script/publish.ts
+ dir: packages/opencode
env:
GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}
AUR_KEY: ${{ secrets.AUR_KEY }}
diff --git a/packages/opencode/script/PKGBUILD.template b/packages/opencode/script/PKGBUILD.template
new file mode 100644
index 000000000..b453eff52
--- /dev/null
+++ b/packages/opencode/script/PKGBUILD.template
@@ -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"
+}
diff --git a/packages/opencode/script/publish.ts b/packages/opencode/script/publish.ts
index 2bb7e7425..f059db529 100755
--- a/packages/opencode/script/publish.ts
+++ b/packages/opencode/script/publish.ts
@@ -86,6 +86,7 @@ if (!dry)
await $`cd ./dist/${pkg.name} && npm publish --access public --tag ${npmTag}`
if (!snapshot) {
+ // Github Release
for (const key of Object.keys(optionalDependencies)) {
await $`cd dist/${key}/bin && zip -r ../../${key}.zip *`
}
@@ -116,4 +117,45 @@ if (!snapshot) {
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://[email protected]/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)
}