Просмотр исходного кода

ci: centralize Bun version to package.json to ensure consistent builds across CI and local development

Dax Raad 3 месяцев назад
Родитель
Сommit
d1cd7d0344
2 измененных файлов с 15 добавлено и 2 удалено
  1. 2 0
      .github/actions/setup-bun/action.yml
  2. 13 2
      packages/script/src/index.ts

+ 2 - 0
.github/actions/setup-bun/action.yml

@@ -5,6 +5,8 @@ runs:
   steps:
     - name: Setup Bun
       uses: oven-sh/setup-bun@v2
+      with:
+        bun-version-file: package.json
 
     - name: Cache ~/.bun
       id: cache-bun

+ 13 - 2
packages/script/src/index.ts

@@ -1,7 +1,18 @@
 import { $ } from "bun"
+import path from "path"
 
-if (process.versions.bun !== "1.3.1") {
-  throw new Error("This script requires [email protected]")
+const rootPkgPath = path.resolve(import.meta.dir, "../../../package.json")
+const rootPkg = await Bun.file(rootPkgPath).json()
+const expectedBunVersion = rootPkg.packageManager?.split("@")[1]
+
+if (!expectedBunVersion) {
+  throw new Error("packageManager field not found in root package.json")
+}
+
+if (process.versions.bun !== expectedBunVersion) {
+  throw new Error(
+    `This script requires bun@${expectedBunVersion}, but you are using bun@${process.versions.bun}`,
+  )
 }
 
 const CHANNEL =