From e2e964e3be87c7229a86df883f339306ee75243b Mon Sep 17 00:00:00 2001 From: Gaubee Date: Tue, 27 Jan 2026 23:27:34 +0800 Subject: [PATCH] fix(cd): handle existing release assets --- .github/workflows/cd.yml | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 57f1f09d7..ceb121cd1 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -420,14 +420,16 @@ jobs: echo "No release assets found" exit 1 fi - gh release create "$TAG_NAME" \ - --title "$RELEASE_TITLE" \ - --notes "$RELEASE_NOTES" \ - ${{ steps.channel.outputs.channel == 'beta' && '--prerelease' || '' }} \ - --target ${{ github.sha }} \ - "${release_files[@]}" \ - 2>/dev/null || \ - gh release upload "$TAG_NAME" "${release_files[@]}" --clobber + if gh release view "$TAG_NAME" >/dev/null 2>&1; then + gh release upload "$TAG_NAME" "${release_files[@]}" --clobber + else + gh release create "$TAG_NAME" \ + --title "$RELEASE_TITLE" \ + --notes "$RELEASE_NOTES" \ + ${{ steps.channel.outputs.channel == 'beta' && '--prerelease' || '' }} \ + --target ${{ github.sha }} \ + "${release_files[@]}" + fi env: GH_TOKEN: ${{ github.token }} TAG_NAME: ${{ steps.channel.outputs.channel == 'stable' && format('v{0}', steps.version.outputs.version) || 'beta' }} @@ -932,14 +934,16 @@ jobs: echo "No release assets found" exit 1 fi - gh release create "$TAG_NAME" \ - --title "$RELEASE_TITLE" \ - --notes "$RELEASE_NOTES" \ - ${{ needs.build-standard.outputs.channel == 'beta' && '--prerelease' || '' }} \ - --target ${{ github.sha }} \ - "${release_files[@]}" \ - 2>/dev/null || \ - gh release upload "$TAG_NAME" "${release_files[@]}" --clobber + if gh release view "$TAG_NAME" >/dev/null 2>&1; then + gh release upload "$TAG_NAME" "${release_files[@]}" --clobber + else + gh release create "$TAG_NAME" \ + --title "$RELEASE_TITLE" \ + --notes "$RELEASE_NOTES" \ + ${{ needs.build-standard.outputs.channel == 'beta' && '--prerelease' || '' }} \ + --target ${{ github.sha }} \ + "${release_files[@]}" + fi env: GH_TOKEN: ${{ github.token }} TAG_NAME: ${{ needs.build-standard.outputs.channel == 'stable' && format('v{0}', needs.build-standard.outputs.version) || 'beta' }}