From 3ad6f84adbcab279ea81345ca44e8931b2b83fec Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 12 Oct 2025 00:46:37 -0400 Subject: [PATCH] ci: centralize bun setup to reduce duplication and improve caching --- .github/actions/setup-bun/action.yml | 20 ++++++++++++++++++++ .github/workflows/deploy.yml | 6 +----- .github/workflows/format.yml | 5 +---- .github/workflows/publish-vscode.yml | 5 +---- .github/workflows/publish.yml | 15 +-------------- .github/workflows/snapshot.yml | 16 +--------------- .github/workflows/stats.yml | 4 +--- .github/workflows/test.yml | 5 +---- .github/workflows/typecheck.yml | 7 +------ 9 files changed, 28 insertions(+), 55 deletions(-) create mode 100644 .github/actions/setup-bun/action.yml diff --git a/.github/actions/setup-bun/action.yml b/.github/actions/setup-bun/action.yml new file mode 100644 index 000000000..108a53df2 --- /dev/null +++ b/.github/actions/setup-bun/action.yml @@ -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 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d94f7f48d..b92c3d729 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,11 +15,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.3.0 - - - run: bun install + - uses: ./.github/actions/setup-bun - run: bun sst deploy --stage=${{ github.ref_name }} env: diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index 2927dd1b1..718ab27c7 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -20,13 +20,10 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.3.0 + uses: ./.github/actions/setup-bun - name: run run: | - bun install ./script/format.ts env: CI: true diff --git a/.github/workflows/publish-vscode.yml b/.github/workflows/publish-vscode.yml index bff8c192b..6014d430a 100644 --- a/.github/workflows/publish-vscode.yml +++ b/.github/workflows/publish-vscode.yml @@ -19,16 +19,13 @@ jobs: with: fetch-depth: 0 - - uses: oven-sh/setup-bun@v2 - with: - bun-version: 1.3.0 + - uses: ./.github/actions/setup-bun - run: git fetch --force --tags - run: bun install -g @vscode/vsce - name: Publish run: | - bun install ./script/publish working-directory: ./sdks/vscode env: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c10957a1b..f160b417e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,18 +35,7 @@ jobs: cache: true cache-dependency-path: go.sum - - uses: oven-sh/setup-bun@v2 - 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- + - uses: ./.github/actions/setup-bun - name: Install makepkg run: | @@ -60,8 +49,6 @@ jobs: git config --global user.email "opencode@sst.dev" git config --global user.name "opencode" ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts || true - - name: Install dependencies - run: bun install - name: Install OpenCode run: curl -fsSL https://opencode.ai/install | bash diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index ddb095354..711af3d42 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -24,21 +24,7 @@ jobs: cache: true cache-dependency-path: go.sum - - uses: oven-sh/setup-bun@v2 - 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 + - uses: ./.github/actions/setup-bun - name: Publish run: | diff --git a/.github/workflows/stats.yml b/.github/workflows/stats.yml index ab7f24e27..01ddf314a 100644 --- a/.github/workflows/stats.yml +++ b/.github/workflows/stats.yml @@ -16,9 +16,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Bun - uses: oven-sh/setup-bun@v2 - with: - bun-version: latest + uses: ./.github/actions/setup-bun - name: Run stats script run: bun script/stats.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 441f9585f..c2df2814c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,15 +18,12 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.3.0 + uses: ./.github/actions/setup-bun - name: run run: | git config --global user.email "bot@opencode.ai" git config --global user.name "opencode" - bun install bun turbo test env: CI: true diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index 3854644b6..8943e10be 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -13,12 +13,7 @@ jobs: uses: actions/checkout@v4 - name: Setup Bun - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.3.0 - - - name: Install dependencies - run: bun install + uses: ./.github/actions/setup-bun - name: Run typecheck run: bun typecheck