File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -239,12 +239,31 @@ jobs:
239239 else
240240 echo "No existing release for $GITHUB_REF_NAME."
241241 fi
242- - name: Create GitHub Release
243- uses: softprops/action-gh-release@v1
242+ - name: Create draft GitHub Release and upload assets
243+ id: release
244+ uses: softprops/action-gh-release@v3
244245 with:
245246 tag_name: ${{ github.ref_name }}
246247 name: Release ${{ github.ref_name }}
247248 body: ${{ steps.changelog.outputs.changelog }}
248249 files: release_assets/*
249- draft: false
250+ draft: true
250251 prerelease: false
252+ preserve_order: true
253+ fail_on_unmatched_files: true
254+ - name: Verify assets and publish GitHub Release
255+ env:
256+ GH_TOKEN: ${{ github.token }}
257+ run: |
258+ set -Eeuo pipefail
259+ mapfile -t expected < <(find release_assets -maxdepth 1 -type f -printf '%f\n' | sort)
260+ mapfile -t uploaded < <(gh release view "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --json assets --jq '.assets[].name' | sort)
261+ if (( ${#expected[@]} == 0 )); then
262+ echo "No local release assets were found."
263+ exit 1
264+ fi
265+ if (( ${#expected[@]} != ${#uploaded[@]} )) || ! diff -u <(printf '%s\n' "${expected[@]}") <(printf '%s\n' "${uploaded[@]}"); then
266+ echo "Uploaded release assets do not match the downloaded build artifacts."
267+ exit 1
268+ fi
269+ gh release edit "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" --draft=false --latest
You can’t perform that action at this time.
0 commit comments