Procházet zdrojové kódy

feat(script): use GitHub run number for preview build identifier

Dax Raad před 1 měsícem
rodič
revize
d77b87ea65
1 změnil soubory, kde provedl 9 přidání a 1 odebrání
  1. 9 1
      packages/script/src/index.ts

+ 9 - 1
packages/script/src/index.ts

@@ -33,7 +33,7 @@ const IS_PREVIEW = CHANNEL !== "latest"
 
 
 const VERSION = await (async () => {
 const VERSION = await (async () => {
   if (env.OPENCODE_VERSION) return env.OPENCODE_VERSION
   if (env.OPENCODE_VERSION) return env.OPENCODE_VERSION
-  if (IS_PREVIEW) return `0.0.0-${CHANNEL}-${new Date().toISOString().slice(0, 16).replace(/[-:T]/g, "")}`
+  if (IS_PREVIEW) return `0.0.0-${CHANNEL}-${previewBuildNumber()}`
   const version = await fetch("https://registry.npmjs.org/opencode-ai/latest")
   const version = await fetch("https://registry.npmjs.org/opencode-ai/latest")
     .then((res) => {
     .then((res) => {
       if (!res.ok) throw new Error(res.statusText)
       if (!res.ok) throw new Error(res.statusText)
@@ -47,6 +47,14 @@ const VERSION = await (async () => {
   return `${major}.${minor}.${patch + 1}`
   return `${major}.${minor}.${patch + 1}`
 })()
 })()
 
 
+function previewBuildNumber() {
+  const runNumber = process.env["GITHUB_RUN_NUMBER"]
+  if (!runNumber) return new Date().toISOString().slice(0, 16).replace(/[-:T]/g, "")
+  const runAttempt = process.env["GITHUB_RUN_ATTEMPT"]
+  if (runAttempt && runAttempt !== "1") return `${runNumber}.${runAttempt}`
+  return runNumber
+}
+
 const bot = ["actions-user", "opencode", "opencode-agent[bot]"]
 const bot = ["actions-user", "opencode", "opencode-agent[bot]"]
 const teamPath = path.resolve(import.meta.dir, "../../../.github/TEAM_MEMBERS")
 const teamPath = path.resolve(import.meta.dir, "../../../.github/TEAM_MEMBERS")
 const team = [
 const team = [