ci: suffix debug-build artifacts to avoid release filename collision

`actions/download-artifact@v8` with `merge-multiple: true` extracts every
artifact into the same Release/ directory in parallel. Release and Debug
builds of the same platform produced identical CPack/AppImage filenames
(isle-0.1-Windows-x64.zip, isle-0.1-Linux-x64.tar.gz,
Isle_Portable-x86_64.AppImage), so the parallel writes raced on the same
path and intermittently produced corrupt archives in the release.

Append `-debug` to CPACK_PACKAGE_FILE_NAME when ISLE_DEBUG is set, and
rename the AppImage in the same case, so each matrix entry contributes a
unique filename to the release.

Fixes #646
This commit is contained in:
Christian Semmler 2026-05-17 13:49:06 -07:00
parent 9e82c461dd
commit 0a590b3c51
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
2 changed files with 11 additions and 0 deletions

View File

@ -243,6 +243,14 @@ jobs:
--output appimage && \
mv *.AppImage dist/
- name: Suffix debug AppImage
if: ${{ matrix.linux && matrix.debug }}
run: |
cd build/dist
for f in *.AppImage; do
mv "$f" "${f%.AppImage}-debug.AppImage"
done
- name: Package (3DS)
if: ${{ matrix.n3ds }}
run: |

View File

@ -1083,6 +1083,9 @@ add_subdirectory(packaging)
set(CPACK_PACKAGE_DIRECTORY "dist")
set(CPACK_PACKAGE_FILE_NAME "isle-${PROJECT_VERSION}-${ISLE_PACKAGE_NAME}")
if(ISLE_DEBUG)
string(APPEND CPACK_PACKAGE_FILE_NAME "-debug")
endif()
if(NINTENDO_3DS)
find_program(BANNERTOOL bannertool)
find_program(MAKEROM makerom)