summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
authorLuke Parker <[email protected]>2026-02-26 17:55:01 +1000
committerGitHub <[email protected]>2026-02-26 17:55:01 +1000
commitfce811b52f335eb28dc43b49a96f42b2ada751f5 (patch)
tree9d5eb1a6d4248b8e1809881f3c0ed6facaacf409 /.github
parentaae75b3cfb10cdff965fb434c487980b152efdec (diff)
downloadopencode-fce811b52f335eb28dc43b49a96f42b2ada751f5.tar.gz
opencode-fce811b52f335eb28dc43b49a96f42b2ada751f5.zip
fix: most segfaults on windows with Bun v1.3.10 stable (#15181)
Diffstat (limited to '.github')
-rw-r--r--.github/actions/setup-bun/action.yml56
-rw-r--r--.github/workflows/publish.yml4
-rw-r--r--.github/workflows/sign-cli.yml4
3 files changed, 4 insertions, 60 deletions
diff --git a/.github/actions/setup-bun/action.yml b/.github/actions/setup-bun/action.yml
index e7966cb48..6c632f7e0 100644
--- a/.github/actions/setup-bun/action.yml
+++ b/.github/actions/setup-bun/action.yml
@@ -1,10 +1,5 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
-inputs:
- cross-compile:
- description: "Pre-cache canary cross-compile binaries for all targets"
- required: false
- default: "false"
runs:
using: "composite"
steps:
@@ -21,12 +16,13 @@ runs:
shell: bash
run: |
if [ "$RUNNER_ARCH" = "X64" ]; then
+ V=$(node -p "require('./package.json').packageManager.split('@')[1]")
case "$RUNNER_OS" in
macOS) OS=darwin ;;
Linux) OS=linux ;;
Windows) OS=windows ;;
esac
- echo "url=https://github.com/oven-sh/bun/releases/download/canary/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
+ echo "url=https://github.com/oven-sh/bun/releases/download/bun-v${V}/bun-${OS}-x64-baseline.zip" >> "$GITHUB_OUTPUT"
fi
- name: Setup Bun
@@ -35,54 +31,6 @@ runs:
bun-version-file: ${{ !steps.bun-url.outputs.url && 'package.json' || '' }}
bun-download-url: ${{ steps.bun-url.outputs.url }}
- - name: Pre-cache canary cross-compile binaries
- if: inputs.cross-compile == 'true'
- shell: bash
- run: |
- BUN_VERSION=$(bun --revision)
- if echo "$BUN_VERSION" | grep -q "canary"; then
- SEMVER=$(echo "$BUN_VERSION" | sed 's/^\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/')
- echo "Bun version: $BUN_VERSION (semver: $SEMVER)"
- CACHE_DIR="$HOME/.bun/install/cache"
- mkdir -p "$CACHE_DIR"
- TMP_DIR=$(mktemp -d)
- for TARGET in linux-aarch64 linux-x64 linux-x64-baseline linux-aarch64-musl linux-x64-musl linux-x64-musl-baseline darwin-aarch64 darwin-x64 windows-x64 windows-x64-baseline; do
- DEST="$CACHE_DIR/bun-${TARGET}-v${SEMVER}"
- if [ -f "$DEST" ]; then
- echo "Already cached: $DEST"
- continue
- fi
- URL="https://github.com/oven-sh/bun/releases/download/canary/bun-${TARGET}.zip"
- echo "Downloading $TARGET from $URL"
- if curl -sfL -o "$TMP_DIR/bun.zip" "$URL"; then
- unzip -qo "$TMP_DIR/bun.zip" -d "$TMP_DIR"
- if echo "$TARGET" | grep -q "windows"; then
- BIN_NAME="bun.exe"
- else
- BIN_NAME="bun"
- fi
- mv "$TMP_DIR/bun-${TARGET}/$BIN_NAME" "$DEST"
- chmod +x "$DEST"
- rm -rf "$TMP_DIR/bun-${TARGET}" "$TMP_DIR/bun.zip"
- echo "Cached: $DEST"
- # baseline bun resolves "bun-darwin-x64" to the baseline cache key
- # so copy the modern binary there too
- if [ "$TARGET" = "darwin-x64" ]; then
- BASELINE_DEST="$CACHE_DIR/bun-darwin-x64-baseline-v${SEMVER}"
- if [ ! -f "$BASELINE_DEST" ]; then
- cp "$DEST" "$BASELINE_DEST"
- echo "Cached (baseline alias): $BASELINE_DEST"
- fi
- fi
- else
- echo "Skipped: $TARGET (not available)"
- fi
- done
- rm -rf "$TMP_DIR"
- else
- echo "Not a canary build ($BUN_VERSION), skipping pre-cache"
- fi
-
- name: Install dependencies
run: bun install
shell: bash
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index cca7df5c4..8d4c9038a 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -77,8 +77,6 @@ jobs:
fetch-tags: true
- uses: ./.github/actions/setup-bun
- with:
- cross-compile: "true"
- name: Setup git committer
id: committer
@@ -90,7 +88,7 @@ jobs:
- name: Build
id: build
run: |
- ./packages/opencode/script/build.ts --all
+ ./packages/opencode/script/build.ts
env:
OPENCODE_VERSION: ${{ needs.version.outputs.version }}
OPENCODE_RELEASE: ${{ needs.version.outputs.release }}
diff --git a/.github/workflows/sign-cli.yml b/.github/workflows/sign-cli.yml
index 891762231..d9d61fd80 100644
--- a/.github/workflows/sign-cli.yml
+++ b/.github/workflows/sign-cli.yml
@@ -20,12 +20,10 @@ jobs:
fetch-tags: true
- uses: ./.github/actions/setup-bun
- with:
- cross-compile: "true"
- name: Build
run: |
- ./packages/opencode/script/build.ts --all
+ ./packages/opencode/script/build.ts
- name: Upload unsigned Windows CLI
id: upload_unsigned_windows_cli