ci: centralize bun setup to reduce duplication and improve caching

This commit is contained in:
Dax Raad
2025-10-12 00:46:37 -04:00
parent 24a5b16af8
commit 3ad6f84adb
9 changed files with 28 additions and 55 deletions

20
.github/actions/setup-bun/action.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: "Setup Bun"
description: "Setup Bun with caching and install dependencies"
runs:
using: "composite"
steps:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v4
with:
path: ~/.bun
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb', 'bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install
shell: bash

View File

@@ -15,11 +15,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- uses: oven-sh/setup-bun@v1 - uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- run: bun install
- run: bun sst deploy --stage=${{ github.ref_name }} - run: bun sst deploy --stage=${{ github.ref_name }}
env: env:

View File

@@ -20,13 +20,10 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v1 uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- name: run - name: run
run: | run: |
bun install
./script/format.ts ./script/format.ts
env: env:
CI: true CI: true

View File

@@ -19,16 +19,13 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- uses: oven-sh/setup-bun@v2 - uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- run: git fetch --force --tags - run: git fetch --force --tags
- run: bun install -g @vscode/vsce - run: bun install -g @vscode/vsce
- name: Publish - name: Publish
run: | run: |
bun install
./script/publish ./script/publish
working-directory: ./sdks/vscode working-directory: ./sdks/vscode
env: env:

View File

@@ -35,18 +35,7 @@ jobs:
cache: true cache: true
cache-dependency-path: go.sum cache-dependency-path: go.sum
- uses: oven-sh/setup-bun@v2 - uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v3
with:
path: ~/.bun
key: ${{ runner.os }}-bun-1-3-0-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-1-3-0-
- name: Install makepkg - name: Install makepkg
run: | run: |
@@ -60,8 +49,6 @@ jobs:
git config --global user.email "opencode@sst.dev" git config --global user.email "opencode@sst.dev"
git config --global user.name "opencode" git config --global user.name "opencode"
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true
- name: Install dependencies
run: bun install
- name: Install OpenCode - name: Install OpenCode
run: curl -fsSL https://opencode.ai/install | bash run: curl -fsSL https://opencode.ai/install | bash

View File

@@ -24,21 +24,7 @@ jobs:
cache: true cache: true
cache-dependency-path: go.sum cache-dependency-path: go.sum
- uses: oven-sh/setup-bun@v2 - uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- name: Cache ~/.bun
id: cache-bun
uses: actions/cache@v3
with:
path: ~/.bun
key: ${{ runner.os }}-bun-1-3-0-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-1-3-0-
- name: Install dependencies
run: bun install
- name: Publish - name: Publish
run: | run: |

View File

@@ -16,9 +16,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v2 uses: ./.github/actions/setup-bun
with:
bun-version: latest
- name: Run stats script - name: Run stats script
run: bun script/stats.ts run: bun script/stats.ts

View File

@@ -18,15 +18,12 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v1 uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- name: run - name: run
run: | run: |
git config --global user.email "bot@opencode.ai" git config --global user.email "bot@opencode.ai"
git config --global user.name "opencode" git config --global user.name "opencode"
bun install
bun turbo test bun turbo test
env: env:
CI: true CI: true

View File

@@ -13,12 +13,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Bun - name: Setup Bun
uses: oven-sh/setup-bun@v1 uses: ./.github/actions/setup-bun
with:
bun-version: 1.3.0
- name: Install dependencies
run: bun install
- name: Run typecheck - name: Run typecheck
run: bun typecheck run: bun typecheck