mirror of
https://github.com/dream-pep/koring-launcher.git
synced 2026-09-12 05:45:18 +08:00
ci(release workflow): 优化 GitHub 发布流程,新增资产存在性检查
重构资产列表和发布命令的参数处理逻辑,新增资产存在校验以避免模糊报错,修复空参数导致的 glob 匹配错误,优化 beta 版本的附加资源上传流程。
This commit is contained in:
@@ -174,21 +174,34 @@ jobs:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
$tag = "v${{ steps.version.outputs.full }}"
|
||||
$prerelease = if ("${{ inputs.mode }}" -eq "beta") { "--prerelease" } else { "" }
|
||||
$extraAssets = @()
|
||||
# beta 额外上传 latest-beta.yml:GitHub provider 频道取件(latest-beta)不再 404 回退
|
||||
if ("${{ inputs.mode }}" -eq "beta") {
|
||||
Copy-Item "dist-electron/latest.yml" "dist-electron/latest-beta.yml" -Force
|
||||
$extraAssets += "dist-electron/latest-beta.yml"
|
||||
}
|
||||
# Release 标题命名(仅展示名;tag / 真实版本号仍是 {base}-beta.{id} 或 {base},更新机制不变):
|
||||
# 正式/预览版 → "1.2.1";测试版 → "BETA 1.2.1"
|
||||
$title = if ("${{ inputs.mode }}" -eq "beta") { "BETA ${{ steps.version.outputs.base }}" } else { "${{ steps.version.outputs.base }}" }
|
||||
gh release create $tag `
|
||||
"dist-electron/koring-launcher-${{ steps.version.outputs.full }}-setup.exe" `
|
||||
"dist-electron/latest.yml" `
|
||||
"release-notes.md" `
|
||||
@extraAssets `
|
||||
--title $title `
|
||||
--notes-file release-notes.md `
|
||||
$prerelease
|
||||
|
||||
# 资产列表(beta 额外上传 latest-beta.yml:GitHub provider 频道取件(latest-beta)不再 404 回退)
|
||||
$assets = @(
|
||||
"dist-electron/koring-launcher-${{ steps.version.outputs.full }}-setup.exe",
|
||||
"dist-electron/latest.yml",
|
||||
"release-notes.md"
|
||||
)
|
||||
if ("${{ inputs.mode }}" -eq "beta") {
|
||||
Copy-Item "dist-electron/latest.yml" "dist-electron/latest-beta.yml" -Force
|
||||
$assets += "dist-electron/latest-beta.yml"
|
||||
}
|
||||
|
||||
# 上传前校验资产存在(避免 gh 对缺失文件的模糊报错)
|
||||
foreach ($a in $assets) {
|
||||
if (-not (Test-Path -LiteralPath $a)) {
|
||||
Write-Error "资产不存在: $a"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
# 参数数组统一 splat:--prerelease 仅在 beta 追加;
|
||||
# 不能传空串占位(gh 会把位置参数当资产 glob,空串 → "no matches found for" 报错)
|
||||
$ghArgs = @($tag) + $assets
|
||||
$ghArgs += @("--title", $title, "--notes-file", "release-notes.md")
|
||||
if ("${{ inputs.mode }}" -eq "beta") {
|
||||
$ghArgs += "--prerelease"
|
||||
}
|
||||
gh release create @ghArgs
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user