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

ci: gemini 3 flash doesnt exist in pinned cicd version (#5776)

Luke Parker 2 месяцев назад
Родитель
Сommit
382905602c
2 измененных файлов с 23 добавлено и 9 удалено
  1. 1 1
      .github/workflows/publish.yml
  2. 22 8
      script/changelog.ts

+ 1 - 1
.github/workflows/publish.yml

@@ -55,7 +55,7 @@ jobs:
 
       - name: Install OpenCode
         if: inputs.bump || inputs.version
-        run: bun i -g [email protected]43
+        run: bun i -g [email protected]69
 
       - name: Login to GitHub Container Registry
         uses: docker/login-action@v3

+ 22 - 8
script/changelog.ts

@@ -185,23 +185,37 @@ export async function generateChangelog(previous: string, current: string): Prom
 
   const commits = commitsWithMeta.join("\n")
 
+  if (!commits.trim()) {
+    console.error("No commits found to generate changelog")
+  }
+
   // Generate changelog via LLM
   // different port to not conflict with dev running opencode
-  const opencode = await createOpencode({ port: 8192 })
   let raw: string | undefined
   try {
-    const session = await opencode.client.session.create()
-    raw = await opencode.client.session
-      .prompt({
-        path: { id: session.data!.id },
+    const opencode = await createOpencode({ port: 8192 })
+    try {
+      const session = await opencode.client.session.create()
+      if (!session.data?.id) {
+        console.error("Failed to create session:", session)
+        throw new Error("Failed to create session")
+      }
+      const response = await opencode.client.session.prompt({
+        path: { id: session.data.id },
         body: {
           model: { providerID: "opencode", modelID: MODEL },
           parts: [{ type: "text", text: buildPrompt(previous, commits) }],
         },
       })
-      .then((x) => x.data?.parts?.find((y) => y.type === "text")?.text)
-  } finally {
-    opencode.server.close()
+      if (!response.data?.parts) {
+        console.error("Empty response from LLM:", response)
+      }
+      raw = response.data?.parts?.find((y) => y.type === "text")?.text
+    } finally {
+      opencode.server.close()
+    }
+  } catch (err) {
+    console.error("Failed to generate changelog via LLM:", err)
   }
 
   const notes = parseChangelog(raw ?? "")