From d4630ea7540fc22495f3af5047f3b12126140ec0 Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Mon, 23 Feb 2026 07:33:42 +0000 Subject: [PATCH 1/2] ci: cache node_modules to skip redundant bun install Add actions/cache@v5 for node_modules in all 9 CI jobs, keyed by bun.lock hash. When the cache hits, bun install is skipped entirely, saving network download and link time on every run. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/ci.yml | 74 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32aa886e..3f5ae35e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Lint & Format check @@ -48,7 +56,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Restore turbo cache @@ -74,7 +90,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Check unused dependencies @@ -92,7 +116,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Validate version sync @@ -110,7 +142,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Validate changesets @@ -128,7 +168,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Check schema diff @@ -146,7 +194,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Prepare test environment @@ -169,7 +225,15 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} + - name: Cache dependencies + id: deps-cache + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + - name: Install dependencies + if: steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Restore turbo cache @@ -212,8 +276,16 @@ jobs: with: bun-version: ${{ env.BUN_VERSION }} - - name: Install dependencies + - name: Cache dependencies + id: deps-cache if: steps.check_files.outputs.needs_changeset == 'true' + uses: actions/cache@v5 + with: + path: node_modules + key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} + + - name: Install dependencies + if: steps.check_files.outputs.needs_changeset == 'true' && steps.deps-cache.outputs.cache-hit != 'true' run: bun install --frozen-lockfile - name: Check changeset From c375ea2381e03fe4cdfe0b80a154da45b788e364 Mon Sep 17 00:00:00 2001 From: HiranoMasaaki Date: Mon, 23 Feb 2026 07:58:07 +0000 Subject: [PATCH 2/2] fix(ci): include workspace node_modules in cache path Root-only node_modules cache missed per-package node_modules created by bun workspaces, causing "Cannot find module" errors. Expand the cache path to include packages/*/node_modules, packages/providers/*/node_modules, and apps/*/node_modules. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/ci.yml | 54 +++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f5ae35e..649c7597 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -60,7 +64,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -94,7 +102,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -120,7 +132,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -146,7 +162,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -172,7 +192,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -198,7 +222,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -229,7 +257,11 @@ jobs: id: deps-cache uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies @@ -281,7 +313,11 @@ jobs: if: steps.check_files.outputs.needs_changeset == 'true' uses: actions/cache@v5 with: - path: node_modules + path: | + node_modules + packages/*/node_modules + packages/providers/*/node_modules + apps/*/node_modules key: deps-${{ runner.os }}-${{ hashFiles('bun.lock') }} - name: Install dependencies