From 60b42e37c6d19e395b45c1d66dd6d1e915425775 Mon Sep 17 00:00:00 2001 From: lanrtop Date: Thu, 2 Apr 2026 01:24:03 +0900 Subject: [PATCH] fix: add --verbose to tauri build, skip latest.json if no update bundle --- .github/workflows/release.yml | 64 ++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d462e2f..191a81a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,6 +61,7 @@ jobs: 请查看提交记录了解详情。 releaseDraft: false prerelease: false + args: --verbose # 上传到阿里云 OSS + 生成 latest.json - name: Upload to OSS & generate latest.json @@ -83,46 +84,55 @@ jobs: $version = $tag.TrimStart('v') $nsisDir = "$env:GITHUB_WORKSPACE\src-tauri\target\release\bundle\nsis" - Write-Host "=== nsis dir contents ===" - Get-ChildItem $nsisDir | ForEach-Object { Write-Host $_.Name } + Write-Host "=== bundle dir (all) ===" + Get-ChildItem "$env:GITHUB_WORKSPACE\src-tauri\target\release\bundle" -Recurse | ForEach-Object { Write-Host $_.FullName } $all = Get-ChildItem $nsisDir $installer = $all | Where-Object { $_.Name.EndsWith('-setup.exe') } | Select-Object -First 1 - $updateZip = $all | Where-Object { $_.Name.EndsWith('.nsis.zip') } | Select-Object -First 1 + $updateZip = $all | Where-Object { $_.Name.EndsWith('.nsis.zip') -and -not $_.Name.EndsWith('.nsis.zip.sig') } | Select-Object -First 1 $sigFile = $all | Where-Object { $_.Name.EndsWith('.nsis.zip.sig') } | Select-Object -First 1 - Write-Host "installer : $($installer.FullName)" - Write-Host "updateZip : $($updateZip.FullName)" - Write-Host "sigFile : $($sigFile.FullName)" + Write-Host "installer : $($installer?.FullName)" + Write-Host "updateZip : $($updateZip?.FullName)" + Write-Host "sigFile : $($sigFile?.FullName)" + + if (-not $installer) { Write-Error "installer not found!"; exit 1 } $bucket = "oss://$env:OSS_BUCKET" $endpoint = "https://$env:OSS_ENDPOINT" & $oss config -e $endpoint -i $env:OSS_KEY_ID -k $env:OSS_KEY_SECRET -L CH - & $oss cp $installer.FullName "$bucket/releases/$tag/$($installer.Name)" -f - & $oss cp $updateZip.FullName "$bucket/releases/$tag/$($updateZip.Name)" -f - & $oss cp $sigFile.FullName "$bucket/releases/$tag/$($sigFile.Name)" -f + & $oss cp $installer.FullName "$bucket/releases/$tag/$($installer.Name)" -f - # 生成 latest.json - $date = (Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ') - $baseUrl = "https://$env:OSS_BUCKET.$env:OSS_ENDPOINT/releases/$tag" - $sig = (Get-Content $sigFile.FullName -Raw).Trim() + if ($updateZip -and $sigFile) { + & $oss cp $updateZip.FullName "$bucket/releases/$tag/$($updateZip.Name)" -f + & $oss cp $sigFile.FullName "$bucket/releases/$tag/$($sigFile.Name)" -f - $json = [ordered]@{ - version = $version - pub_date = $date - notes = "版本 $tag 已发布" - platforms = [ordered]@{ - 'windows-x86_64' = [ordered]@{ - signature = $sig - url = "$baseUrl/$($updateZip.Name)" + # 生成 latest.json + $date = (Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ') + $baseUrl = "https://$env:OSS_BUCKET.$env:OSS_ENDPOINT/releases/$tag" + $sig = (Get-Content $sigFile.FullName -Raw).Trim() + + $json = [ordered]@{ + version = $version + pub_date = $date + notes = "版本 $tag 已发布" + platforms = [ordered]@{ + 'windows-x86_64' = [ordered]@{ + signature = $sig + url = "$baseUrl/$($updateZip.Name)" + } } - } - } | ConvertTo-Json -Depth 5 + } | ConvertTo-Json -Depth 5 - $json | Out-File -FilePath latest.json -Encoding utf8NoBOM - Write-Host "=== latest.json ===" - Get-Content latest.json + $json | Out-File -FilePath latest.json -Encoding utf8NoBOM + Write-Host "=== latest.json ===" + Get-Content latest.json - & $oss cp latest.json "$bucket/latest.json" -f + & $oss cp latest.json "$bucket/latest.json" -f + Write-Host "latest.json uploaded" + } else { + Write-Warning "update bundle (.nsis.zip) not found — skipping updater upload" + Write-Warning "Check that TAURI_SIGNING_PRIVATE_KEY is correctly set" + }