瀏覽代碼

ci: skip winget publish on beta and ensure finalize always runs

Beta releases no longer trigger unnecessary Winget submissions, and release
finalization now completes even when some build artifacts are missing.
Dax Raad 5 月之前
父節點
當前提交
1a902b291c
共有 2 個文件被更改,包括 7 次插入2 次删除
  1. 2 0
      .github/workflows/publish.yml
  2. 5 2
      packages/desktop/scripts/finalize-latest-json.ts

+ 2 - 0
.github/workflows/publish.yml

@@ -213,6 +213,7 @@ jobs:
     needs:
     needs:
       - build-cli
       - build-cli
       - version
       - version
+    if: github.ref_name != 'beta'
     continue-on-error: false
     continue-on-error: false
     env:
     env:
       AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
       AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
@@ -547,6 +548,7 @@ jobs:
       - sign-cli-windows
       - sign-cli-windows
       - build-tauri
       - build-tauri
       - build-electron
       - build-electron
+    if: always() && !failure() && !cancelled()
     runs-on: blacksmith-4vcpu-ubuntu-2404
     runs-on: blacksmith-4vcpu-ubuntu-2404
     steps:
     steps:
       - uses: actions/checkout@v3
       - uses: actions/checkout@v3

+ 5 - 2
packages/desktop/scripts/finalize-latest-json.ts

@@ -21,7 +21,7 @@ const releaseId = process.env.OPENCODE_RELEASE
 if (!releaseId) throw new Error("OPENCODE_RELEASE is required")
 if (!releaseId) throw new Error("OPENCODE_RELEASE is required")
 
 
 const version = process.env.OPENCODE_VERSION
 const version = process.env.OPENCODE_VERSION
-if (!releaseId) throw new Error("OPENCODE_VERSION is required")
+if (!version) throw new Error("OPENCODE_VERSION is required")
 
 
 const token = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN
 const token = process.env.GH_TOKEN ?? process.env.GITHUB_TOKEN
 if (!token) throw new Error("GH_TOKEN or GITHUB_TOKEN is required")
 if (!token) throw new Error("GH_TOKEN or GITHUB_TOKEN is required")
@@ -54,7 +54,10 @@ const assets = release.assets ?? []
 const assetByName = new Map(assets.map((asset) => [asset.name, asset]))
 const assetByName = new Map(assets.map((asset) => [asset.name, asset]))
 
 
 const latestAsset = assetByName.get("latest.json")
 const latestAsset = assetByName.get("latest.json")
-if (!latestAsset) throw new Error("latest.json asset not found")
+if (!latestAsset) {
+  console.log("latest.json not found, skipping tauri finalization")
+  process.exit(0)
+}
 
 
 const latestRes = await fetch(latestAsset.url, {
 const latestRes = await fetch(latestAsset.url, {
   headers: {
   headers: {