This commit is contained in:
Dax Raad
2026-01-29 09:34:55 -05:00
parent aa92ef37fd
commit 1d972d6bae
3 changed files with 41 additions and 10 deletions

View File

@@ -4,6 +4,7 @@ run-name: "${{ format('release {0}', inputs.bump) }}"
on:
push:
branches:
- ci
- dev
- snapshot-*
workflow_dispatch:
@@ -29,7 +30,22 @@ permissions:
packages: write
jobs:
publish:
version:
runs-on: blacksmith-4vcpu-ubuntu-2404
if: github.repository == 'anomalyco/opencode'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/setup-bun
- id: version
run: |
./script/version.ts
outputs:
version: ${{ steps.version.outputs.version }}
build-cli:
needs: version
runs-on: blacksmith-4vcpu-ubuntu-2404
if: github.repository == 'anomalyco/opencode'
steps:
@@ -69,9 +85,10 @@ jobs:
git config --global user.name "opencode"
git remote set-url origin https://x-access-token:${{ secrets.SST_GITHUB_TOKEN }}@github.com/${{ github.repository }}
- name: Publish
id: publish
run: ./script/publish-start.ts
- name: Build
id: build
run: |
./packages/script/build.ts
env:
OPENCODE_BUMP: ${{ inputs.bump }}
OPENCODE_VERSION: ${{ inputs.version }}
@@ -86,12 +103,12 @@ jobs:
path: packages/opencode/dist
outputs:
release: ${{ steps.publish.outputs.release }}
release: ${{ steps.build-cli.outputs.release }}
tag: ${{ steps.publish.outputs.tag }}
version: ${{ steps.publish.outputs.version }}
publish-tauri:
needs: publish
build-tauri:
needs: build
continue-on-error: false
strategy:
fail-fast: false

View File

@@ -7,7 +7,14 @@ import { fileURLToPath } from "url"
const dir = fileURLToPath(new URL("..", import.meta.url))
process.chdir(dir)
const { binaries } = await import("./build.ts")
const binaries: Record<string, string> = {}
for (const filepath of new Bun.Glob("*/package.json").scanSync({ cwd: "./dist" })) {
const pkg = await Bun.file(`./dist/${filepath}`).json()
binaries[pkg.name] = pkg.version
}
console.log("binaries", binaries)
const version = Object.values(binaries)[0]
{
const name = `${pkg.name}-${process.platform}-${process.arch}`
console.log(`smoke test: running dist/${name}/bin/opencode --version`)
@@ -28,7 +35,7 @@ await Bun.file(`./dist/${pkg.name}/package.json`).write(
scripts: {
postinstall: "bun ./postinstall.mjs || node ./postinstall.mjs",
},
version: Script.version,
version: version,
optionalDependencies: binaries,
},
null,
@@ -64,7 +71,7 @@ if (!Script.preview) {
const image = "ghcr.io/anomalyco/opencode"
const platforms = "linux/amd64,linux/arm64"
const tags = [`${image}:${Script.version}`, `${image}:latest`]
const tags = [`${image}:${version}`, `${image}:latest`]
const tagFlags = tags.flatMap((t) => ["-t", t])
await $`docker buildx build --platform ${platforms} ${tagFlags} --push .`
}

7
script/version.ts Normal file
View File

@@ -0,0 +1,7 @@
import { Script } from "@opencode-ai/script"
let output = `version=${Script.version}\n`
if (process.env.GITHUB_OUTPUT) {
await Bun.write(process.env.GITHUB_OUTPUT, output)
}