fix: find artifacts directly in OSS upload step
This commit is contained in:
parent
482bc2e6c0
commit
a6f2f607e6
60
.github/workflows/release.yml
vendored
60
.github/workflows/release.yml
vendored
@ -49,31 +49,6 @@ jobs:
|
|||||||
releaseDraft: false
|
releaseDraft: false
|
||||||
prerelease: false
|
prerelease: false
|
||||||
|
|
||||||
# 找到生成的安装包和签名文件
|
|
||||||
- name: Collect artifacts
|
|
||||||
id: artifacts
|
|
||||||
shell: pwsh
|
|
||||||
run: |
|
|
||||||
$tag = "${{ github.ref_name }}"
|
|
||||||
$version = $tag.TrimStart('v')
|
|
||||||
$nsisDir = "$env:GITHUB_WORKSPACE\src-tauri\target\release\bundle\nsis"
|
|
||||||
|
|
||||||
$all = Get-ChildItem $nsisDir
|
|
||||||
$installer = $all | Where-Object { $_.Name -like "*_x64-setup.exe" -and $_.Name -notlike "*.sig" } | Select-Object -First 1
|
|
||||||
$updateZip = $all | Where-Object { $_.Name -like "*.nsis.zip" -and $_.Name -notlike "*.sig" } | Select-Object -First 1
|
|
||||||
$sigFile = $all | Where-Object { $_.Name -like "*.nsis.zip.sig" } | Select-Object -First 1
|
|
||||||
|
|
||||||
Write-Host "installer : $($installer.FullName)"
|
|
||||||
Write-Host "updateZip : $($updateZip.FullName)"
|
|
||||||
Write-Host "sigFile : $($sigFile.FullName)"
|
|
||||||
|
|
||||||
echo "INSTALLER=$($installer.FullName)" >> $env:GITHUB_OUTPUT
|
|
||||||
echo "UPDATE_ZIP=$($updateZip.FullName)" >> $env:GITHUB_OUTPUT
|
|
||||||
echo "SIG_FILE=$($sigFile.FullName)" >> $env:GITHUB_OUTPUT
|
|
||||||
echo "VERSION=$version" >> $env:GITHUB_OUTPUT
|
|
||||||
echo "INSTALLER_NAME=$($installer.Name)" >> $env:GITHUB_OUTPUT
|
|
||||||
echo "UPDATE_ZIP_NAME=$($updateZip.Name)" >> $env:GITHUB_OUTPUT
|
|
||||||
|
|
||||||
# 上传到阿里云 OSS + 生成 latest.json
|
# 上传到阿里云 OSS + 生成 latest.json
|
||||||
- name: Upload to OSS & generate latest.json
|
- name: Upload to OSS & generate latest.json
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
@ -83,31 +58,43 @@ jobs:
|
|||||||
OSS_BUCKET: ${{ secrets.OSS_BUCKET }}
|
OSS_BUCKET: ${{ secrets.OSS_BUCKET }}
|
||||||
OSS_ENDPOINT: ${{ secrets.OSS_ENDPOINT }}
|
OSS_ENDPOINT: ${{ secrets.OSS_ENDPOINT }}
|
||||||
run: |
|
run: |
|
||||||
# 下载 ossutil 可执行文件
|
# 下载 ossutil
|
||||||
$oss = "$env:GITHUB_WORKSPACE\ossutil64.exe"
|
$oss = "$env:GITHUB_WORKSPACE\ossutil64.exe"
|
||||||
Invoke-WebRequest -Uri "https://gosspublic.alicdn.com/ossutil/1.7.17/ossutil-v1.7.17-windows-amd64.zip" -OutFile oss.zip
|
Invoke-WebRequest -Uri "https://gosspublic.alicdn.com/ossutil/1.7.17/ossutil-v1.7.17-windows-amd64.zip" -OutFile oss.zip
|
||||||
Expand-Archive oss.zip -DestinationPath oss_tmp
|
Expand-Archive oss.zip -DestinationPath oss_tmp
|
||||||
$exeFound = Get-ChildItem oss_tmp -Filter "ossutil*.exe" -Recurse | Select-Object -First 1
|
$exeFound = Get-ChildItem oss_tmp -Filter "ossutil*.exe" -Recurse | Select-Object -First 1
|
||||||
Copy-Item $exeFound.FullName $oss
|
Copy-Item $exeFound.FullName $oss
|
||||||
|
|
||||||
|
# 直接在本步骤找文件,不依赖 step outputs
|
||||||
$tag = "${{ github.ref_name }}"
|
$tag = "${{ github.ref_name }}"
|
||||||
|
$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 }
|
||||||
|
|
||||||
|
$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
|
||||||
|
$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)"
|
||||||
|
|
||||||
$bucket = "oss://$env:OSS_BUCKET"
|
$bucket = "oss://$env:OSS_BUCKET"
|
||||||
$endpoint = "https://$env:OSS_ENDPOINT"
|
$endpoint = "https://$env:OSS_ENDPOINT"
|
||||||
|
|
||||||
# 配置 ossutil
|
|
||||||
& $oss config -e $endpoint -i $env:OSS_KEY_ID -k $env:OSS_KEY_SECRET -L CH
|
& $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 "${{ steps.artifacts.outputs.INSTALLER }}" "$bucket/releases/$tag/${{ steps.artifacts.outputs.INSTALLER_NAME }}" -f
|
& $oss cp $updateZip.FullName "$bucket/releases/$tag/$($updateZip.Name)" -f
|
||||||
& $oss cp "${{ steps.artifacts.outputs.UPDATE_ZIP }}" "$bucket/releases/$tag/${{ steps.artifacts.outputs.UPDATE_ZIP_NAME }}" -f
|
& $oss cp $sigFile.FullName "$bucket/releases/$tag/$($sigFile.Name)" -f
|
||||||
& $oss cp "${{ steps.artifacts.outputs.SIG_FILE }}" "$bucket/releases/$tag/${{ steps.artifacts.outputs.UPDATE_ZIP_NAME }}.sig" -f
|
|
||||||
|
|
||||||
# 生成 latest.json
|
# 生成 latest.json
|
||||||
$version = "${{ steps.artifacts.outputs.VERSION }}"
|
|
||||||
$date = (Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ')
|
$date = (Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ')
|
||||||
$baseUrl = "https://$env:OSS_BUCKET.$env:OSS_ENDPOINT/releases/$tag"
|
$baseUrl = "https://$env:OSS_BUCKET.$env:OSS_ENDPOINT/releases/$tag"
|
||||||
$zipName = "${{ steps.artifacts.outputs.UPDATE_ZIP_NAME }}"
|
$sig = (Get-Content $sigFile.FullName -Raw).Trim()
|
||||||
$sig = (Get-Content "${{ steps.artifacts.outputs.SIG_FILE }}" -Raw).Trim()
|
|
||||||
|
|
||||||
$json = [ordered]@{
|
$json = [ordered]@{
|
||||||
version = $version
|
version = $version
|
||||||
@ -116,10 +103,13 @@ jobs:
|
|||||||
platforms = [ordered]@{
|
platforms = [ordered]@{
|
||||||
'windows-x86_64' = [ordered]@{
|
'windows-x86_64' = [ordered]@{
|
||||||
signature = $sig
|
signature = $sig
|
||||||
url = "$baseUrl/$zipName"
|
url = "$baseUrl/$($updateZip.Name)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} | ConvertTo-Json -Depth 5
|
} | ConvertTo-Json -Depth 5
|
||||||
|
|
||||||
$json | Out-File -FilePath latest.json -Encoding utf8NoBOM
|
$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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user