Skip to content

Commit a1ff58b

Browse files
authored
ci: suffix debug-build artifacts to avoid release filename collision (#808)
* 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 * ci: drop Debug matrix entries and replace ISLE_DEBUG with ISLE_CITRO3D_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 #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 #646 * Remove leftover ISLE_DEBUG=OFF from emscripten Dockerfile and flatpak manifest These passed -DISLE_DEBUG=OFF, which is now an unknown CMake variable.
1 parent 9e82c46 commit a1ff58b

4 files changed

Lines changed: 4 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,8 @@ jobs:
3838
matrix:
3939
include:
4040
- { name: 'Linux', os: 'ubuntu-latest', generator: 'Ninja', dx5: false, config: true, linux: true, werror: true, clang-tidy: true, build-assets: true }
41-
- { name: 'Linux (Debug)', os: 'ubuntu-latest', generator: 'Ninja', dx5: false, config: true, linux: true, werror: true, clang-tidy: true, debug: true }
4241
- { name: 'MSVC (x86)', os: 'windows-latest', generator: 'Ninja', dx5: true, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_x86' }
4342
- { name: 'MSVC (x64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: true, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' }
44-
- { name: 'MSVC (x64 Debug)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: true, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64', debug: true }
4543
- { name: 'MSVC (arm64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_arm64' }
4644
- { name: 'msys2 mingw64', os: 'windows-latest', generator: 'Ninja', dx5: false, config: true, mingw: true, werror: true, clang-tidy: true, msystem: 'mingw64', msys-env: 'mingw-w64-x86_64', shell: 'msys2 {0}' }
4745
- { name: 'macOS', os: 'macos-latest', generator: 'Ninja', dx5: false, config: true, brew: true, werror: true, clang-tidy: false }
@@ -180,7 +178,6 @@ jobs:
180178
-DISLE_BUILD_CONFIG=${{ !!matrix.config }} \
181179
-DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \
182180
-DISLE_WERROR=${{ !!matrix.werror }} \
183-
-DISLE_DEBUG=${{ matrix.debug || 'OFF' }} \
184181
-Werror=dev"
185182
186183
- name: Configure (CMake)
@@ -194,7 +191,6 @@ jobs:
194191
-DISLE_BUILD_ASSETS=${{ !!matrix.build-assets }} \
195192
-DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \
196193
-DISLE_WERROR=${{ !!matrix.werror }} \
197-
-DISLE_DEBUG=${{ matrix.debug || 'OFF' }} \
198194
-Werror=dev
199195
200196
- name: Build (CMake)

docker/emscripten/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ COPY --chown=emscripten:emscripten packaging/ ./packaging/
3131
COPY --chown=emscripten:emscripten extensions/ ./extensions/
3232
COPY --chown=emscripten:emscripten CMakeLists.txt .
3333

34-
RUN emcmake cmake -S . -B build -DISLE_BUILD_CONFIG=OFF -DISLE_DEBUG=OFF -DCMAKE_BUILD_TYPE=Release && \
34+
RUN emcmake cmake -S . -B build -DISLE_BUILD_CONFIG=OFF -DCMAKE_BUILD_TYPE=Release && \
3535
emmake cmake --build build -j 32
3636

3737
RUN echo "Fetching isle.pizza frontend..."; \

miniwin/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ if(VITA)
111111
endif()
112112

113113
if(NINTENDO_3DS)
114-
if(ISLE_DEBUG)
114+
option(ISLE_CITRO3D_DEBUG "Link the debug build of citro3d (citro3dd) on Nintendo 3DS" OFF)
115+
if(ISLE_CITRO3D_DEBUG)
115116
find_library(CITRO3D_LIBRARY NAMES citro3dd)
116117
else()
117118
find_library(CITRO3D_LIBRARY NAMES citro3d)

packaging/linux/flatpak/org.legoisland.Isle.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
"name": "isle",
2222
"buildsystem": "cmake-ninja",
2323
"config-opts": [
24-
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
25-
"-DISLE_DEBUG=OFF"
24+
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
2625
],
2726
"sources": [
2827
{

0 commit comments

Comments
 (0)