Skip to content

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

Merged
foxtacles merged 3 commits into
isledecomp:masterfrom
foxtacles:fix-release-artifact-collision
May 17, 2026
Merged

ci: suffix debug-build artifacts to avoid release filename collision#808
foxtacles merged 3 commits into
isledecomp:masterfrom
foxtacles:fix-release-artifact-collision

Conversation

@foxtacles

Copy link
Copy Markdown
Member

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

`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 isledecomp#646
@foxtacles foxtacles requested a review from madebr May 17, 2026 20:49
@madebr

madebr commented May 17, 2026

Copy link
Copy Markdown
Contributor

Is ISLE_DEBUG still needed as a CMake option/item in the ci array?
ISLE_DEBUG is only used for selecting another citro3d library on nintendo 3ds.

I'd get rid of it, and perhaps add a ISLE_CITRO3D_DEBUG option.

foxtacles added 2 commits May 17, 2026 14:33
…D_DEBUG

The Linux (Debug) and MSVC (x64 Debug) jobs only differed from their
Release counterparts in -DISLE_DEBUG=ON. ISLE_DEBUG was only consulted
in one place: miniwin/CMakeLists.txt for the Nintendo 3DS citro3d
library selection (citro3dd vs citro3d) — which the Nintendo 3DS matrix
row never enabled. So Linux (Debug)/MSVC (x64 Debug) produced binaries
identical to their Release builds and collided with them in the release
artifact merge, which is what corrupted isledecomp#646.

Drop the two duplicate matrix entries and the now-unused ISLE_DEBUG
plumbing, and reintroduce the 3DS knob as ISLE_CITRO3D_DEBUG scoped to
its actual use site.

Reverts the -debug filename suffix added in the previous commit; with
the duplicates gone there is nothing left to disambiguate.

Fixes isledecomp#646
… manifest

These passed -DISLE_DEBUG=OFF, which is now an unknown CMake variable.
@foxtacles foxtacles requested review from madebr and removed request for madebr May 17, 2026 21:34
@foxtacles foxtacles enabled auto-merge (squash) May 17, 2026 21:45
@foxtacles foxtacles merged commit a1ff58b into isledecomp:master May 17, 2026
20 checks passed
@foxtacles foxtacles deleted the fix-release-artifact-collision branch June 20, 2026 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Corrupted Release zip for Windows x64

2 participants