Normalize release artifacts before publishing

This commit is contained in:
lincube
2026-04-21 21:17:52 +08:00
parent 001a42a97f
commit 631dc7795a

View File

@@ -679,17 +679,40 @@ jobs:
pattern: release-* pattern: release-*
merge-multiple: true merge-multiple: true
- name: Normalize release files
run: |
mkdir -p release-bundle
mapfile -t downloaded_files < <(find release-files -type f)
if [ "${#downloaded_files[@]}" -eq 0 ]; then
echo "No downloaded release artifacts were found."
exit 1
fi
for file in "${downloaded_files[@]}"; do
base_name="$(basename "$file")"
target_path="release-bundle/$base_name"
if [ -e "$target_path" ]; then
echo "Duplicate release asset name detected: $base_name"
echo "Conflicting file: $file"
exit 1
fi
cp "$file" "$target_path"
done
- name: Validate release files - name: Validate release files
run: | run: |
echo "Release files:" echo "Release files:"
find release-files -maxdepth 1 -type f -exec ls -lh {} \; find release-bundle -maxdepth 1 -type f -exec ls -lh {} \;
if [ ! -f release-files/files-windows-x64.zip ] || [ ! -f release-files/files-windows-x86.zip ] || [ ! -f release-files/files-linux-x64.zip ]; then if [ ! -f release-bundle/files-windows-x64.zip ] || [ ! -f release-bundle/files-windows-x86.zip ] || [ ! -f release-bundle/files-linux-x64.zip ]; then
echo "Required payload zips are missing." echo "Required payload zips are missing."
exit 1 exit 1
fi fi
file_count=$(find release-files -maxdepth 1 -type f | wc -l) file_count=$(find release-bundle -maxdepth 1 -type f | wc -l)
if [ "$file_count" -eq 0 ]; then if [ "$file_count" -eq 0 ]; then
echo "No release files were produced." echo "No release files were produced."
exit 1 exit 1
@@ -703,7 +726,7 @@ jobs:
allowUpdates: true allowUpdates: true
draft: false draft: false
prerelease: ${{ needs.prepare.outputs.is_prerelease == 'true' }} prerelease: ${{ needs.prepare.outputs.is_prerelease == 'true' }}
artifacts: 'release-files/**' artifacts: 'release-bundle/*'
body: | body: |
## Release ${{ needs.prepare.outputs.version }} ## Release ${{ needs.prepare.outputs.version }}