mirror of
https://github.com/openai/codex.git
synced 2026-11-06 20:20:34 +00:00
Remove incomplete prereleases after asset upload failures (#59887)
## Why Prereleases are published before their assets are uploaded. A failed upload can leave an incomplete public release and prevent a rerun from recreating its `prereleased` event. ## What changed Track newly created prereleases and successful asset uploads in the release workflow. Remove a newly created prerelease if its upload fails, preserving the tag so a rerun can recreate the release. Keep existing releases and releases whose assets finished uploading, even if the metadata update fails. ## Testing Add a regression test that runs the workflow commands with a stubbed `gh`, covering upload failure cleanup, a successful rerun, preservation of existing prereleases, and metadata update failures after upload. GitOrigin-RevId: 29411d6d1e649f4e8c67e84a41d9de2c9d31558f
This commit is contained in:
@@ -1763,6 +1763,7 @@ jobs:
|
||||
mv dist/x86_64-pc-windows-msvc/install.ps1 dist/install.ps1
|
||||
|
||||
- name: Create GitHub Release
|
||||
id: github_release
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
RELEASE_NAME: ${{ steps.release_name.outputs.name }}
|
||||
@@ -1795,14 +1796,25 @@ jobs:
|
||||
fi
|
||||
gh release create "$GITHUB_REF_NAME" "${release_args[@]}" \
|
||||
--draft="$draft" --verify-tag --latest=false
|
||||
if [[ "$PRERELEASE" == true ]]; then
|
||||
echo "created_prerelease=true" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
fi
|
||||
|
||||
mapfile -d '' assets < <(find dist -type f -print0 | sort -z)
|
||||
gh release upload "$GITHUB_REF_NAME" "${assets[@]}" \
|
||||
--repo "$GITHUB_REPOSITORY" --clobber
|
||||
echo "assets_uploaded=true" >> "$GITHUB_OUTPUT"
|
||||
gh release edit "$GITHUB_REF_NAME" "${release_args[@]}" \
|
||||
--draft=false --latest="$MAKE_LATEST"
|
||||
|
||||
- name: Remove incomplete prerelease
|
||||
# Keep the tag so a rerun can recreate the release and its prereleased event.
|
||||
if: ${{ always() && steps.github_release.outputs.created_prerelease == 'true' && steps.github_release.outputs.assets_uploaded != 'true' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: gh release delete "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --yes
|
||||
|
||||
publish-r2-assets:
|
||||
name: publish-r2-assets
|
||||
needs: release
|
||||
|
||||
Reference in New Issue
Block a user