diff options
| author | Luke Parker <[email protected]> | 2026-02-26 17:55:01 +1000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-26 17:55:01 +1000 |
| commit | fce811b52f335eb28dc43b49a96f42b2ada751f5 (patch) | |
| tree | 9d5eb1a6d4248b8e1809881f3c0ed6facaacf409 /.github | |
| parent | aae75b3cfb10cdff965fb434c487980b152efdec (diff) | |
| download | opencode-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.yml | 56 | ||||
| -rw-r--r-- | .github/workflows/publish.yml | 4 | ||||
| -rw-r--r-- | .github/workflows/sign-cli.yml | 4 |
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 |
