ci: suffix debug-build artifacts to avoid release filename collision (#808)
Some checks failed
CI / clang-format (push) Has been cancelled
CI / ${{ matrix.name }} (false, --toolchain $GITHUB_WORKSPACE/CMake/i586-pc-msdosdjgpp.cmake, false, true, false, Ninja, DOS, ubuntu-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, --toolchain /usr/local/vitasdk/share/vita.toolchain.cmake, false, false, Ninja, Vita, ubuntu-latest, true, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0.26100.0, false, false, Visual Studio 18 2026, true, Xbox One, windows-latest, amd64, false, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/3DS.cmake, false, devkitpro/devkitarm:latest, false, Ninja, true, Nintendo 3DS, ubuntu-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake, false, devkitpro/devkita64:latest, false, Ninja, Nintendo Switch, true, ubuntu-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, emcmake, false, false, true, Ninja, Emscripten, ubuntu-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (false, false, false, Ninja, true, MSVC (arm64), windows-latest, amd64_arm64, false) (push) Has been cancelled
CI / ${{ matrix.name }} (false, false, true, Ninja, true, MSVC (x86), windows-latest, amd64_x86, false) (push) Has been cancelled
CI / ${{ matrix.name }} (false, true, false, Ninja, true, MSVC (x64), windows-latest, amd64, false) (push) Has been cancelled
CI / ${{ matrix.name }} (true, false, -DCMAKE_SYSTEM_NAME=iOS, false, false, Xcode, true, iOS, macos-15, true) (push) Has been cancelled
CI / ${{ matrix.name }} (true, false, false, false, Ninja, Android, ubuntu-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (true, false, true, false, Ninja, macOS, macos-latest, true) (push) Has been cancelled
CI / ${{ matrix.name }} (true, true, false, Ninja, true, mingw-w64-x86_64, mingw64, msys2 mingw64, windows-latest, msys2 {0}, true) (push) Has been cancelled
CI / ${{ matrix.name }} (true, true, true, false, Ninja, true, Linux, ubuntu-latest, true) (push) Has been cancelled
CI / FreeBSD (push) Has been cancelled
CI / Flatpak (${{ matrix.arch }}) (aarch64, ubuntu-22.04-arm) (push) Has been cancelled
CI / Flatpak (${{ matrix.arch }}) (x86_64, ubuntu-latest) (push) Has been cancelled
CI / C++ (push) Has been cancelled
Docker / Publish web port (push) Has been cancelled
CI / Release (push) Has been cancelled

* 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.
This commit is contained in:
foxtacles 2026-05-17 14:52:22 -07:00 committed by GitHub
parent 9e82c461dd
commit a1ff58b155
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 4 additions and 8 deletions

View File

@ -38,10 +38,8 @@ jobs:
matrix: matrix:
include: include:
- { name: 'Linux', os: 'ubuntu-latest', generator: 'Ninja', dx5: false, config: true, linux: true, werror: true, clang-tidy: true, build-assets: true } - { name: 'Linux', os: 'ubuntu-latest', generator: 'Ninja', dx5: false, config: true, linux: true, werror: true, clang-tidy: true, build-assets: true }
- { name: 'Linux (Debug)', os: 'ubuntu-latest', generator: 'Ninja', dx5: false, config: true, linux: true, werror: true, clang-tidy: true, debug: true }
- { name: 'MSVC (x86)', os: 'windows-latest', generator: 'Ninja', dx5: true, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_x86' } - { name: 'MSVC (x86)', os: 'windows-latest', generator: 'Ninja', dx5: true, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_x86' }
- { name: 'MSVC (x64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: true, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' } - { name: 'MSVC (x64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: true, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64' }
- { 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 }
- { name: 'MSVC (arm64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_arm64' } - { name: 'MSVC (arm64)', os: 'windows-latest', generator: 'Ninja', dx5: false, config: false, msvc: true, werror: false, clang-tidy: false, vc-arch: 'amd64_arm64' }
- { 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}' } - { 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}' }
- { name: 'macOS', os: 'macos-latest', generator: 'Ninja', dx5: false, config: true, brew: true, werror: true, clang-tidy: false } - { name: 'macOS', os: 'macos-latest', generator: 'Ninja', dx5: false, config: true, brew: true, werror: true, clang-tidy: false }
@ -180,7 +178,6 @@ jobs:
-DISLE_BUILD_CONFIG=${{ !!matrix.config }} \ -DISLE_BUILD_CONFIG=${{ !!matrix.config }} \
-DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \ -DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \
-DISLE_WERROR=${{ !!matrix.werror }} \ -DISLE_WERROR=${{ !!matrix.werror }} \
-DISLE_DEBUG=${{ matrix.debug || 'OFF' }} \
-Werror=dev" -Werror=dev"
- name: Configure (CMake) - name: Configure (CMake)
@ -194,7 +191,6 @@ jobs:
-DISLE_BUILD_ASSETS=${{ !!matrix.build-assets }} \ -DISLE_BUILD_ASSETS=${{ !!matrix.build-assets }} \
-DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \ -DENABLE_CLANG_TIDY=${{ !!matrix.clang-tidy }} \
-DISLE_WERROR=${{ !!matrix.werror }} \ -DISLE_WERROR=${{ !!matrix.werror }} \
-DISLE_DEBUG=${{ matrix.debug || 'OFF' }} \
-Werror=dev -Werror=dev
- name: Build (CMake) - name: Build (CMake)

View File

@ -31,7 +31,7 @@ COPY --chown=emscripten:emscripten packaging/ ./packaging/
COPY --chown=emscripten:emscripten extensions/ ./extensions/ COPY --chown=emscripten:emscripten extensions/ ./extensions/
COPY --chown=emscripten:emscripten CMakeLists.txt . COPY --chown=emscripten:emscripten CMakeLists.txt .
RUN emcmake cmake -S . -B build -DISLE_BUILD_CONFIG=OFF -DISLE_DEBUG=OFF -DCMAKE_BUILD_TYPE=Release && \ RUN emcmake cmake -S . -B build -DISLE_BUILD_CONFIG=OFF -DCMAKE_BUILD_TYPE=Release && \
emmake cmake --build build -j 32 emmake cmake --build build -j 32
RUN echo "Fetching isle.pizza frontend..."; \ RUN echo "Fetching isle.pizza frontend..."; \

View File

@ -111,7 +111,8 @@ if(VITA)
endif() endif()
if(NINTENDO_3DS) if(NINTENDO_3DS)
if(ISLE_DEBUG) option(ISLE_CITRO3D_DEBUG "Link the debug build of citro3d (citro3dd) on Nintendo 3DS" OFF)
if(ISLE_CITRO3D_DEBUG)
find_library(CITRO3D_LIBRARY NAMES citro3dd) find_library(CITRO3D_LIBRARY NAMES citro3dd)
else() else()
find_library(CITRO3D_LIBRARY NAMES citro3d) find_library(CITRO3D_LIBRARY NAMES citro3d)

View File

@ -21,8 +21,7 @@
"name": "isle", "name": "isle",
"buildsystem": "cmake-ninja", "buildsystem": "cmake-ninja",
"config-opts": [ "config-opts": [
"-DCMAKE_BUILD_TYPE=RelWithDebInfo", "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
"-DISLE_DEBUG=OFF"
], ],
"sources": [ "sources": [
{ {