From f103a7c18681c1e8bd901e3b40c2cd584a45f4be Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 24 Jan 2026 18:44:52 +0000 Subject: [PATCH 01/18] Add hybrid release workflow for automated binary builds - Builds Linux and Windows binaries on every push to master - Uploads artifacts with 90-day retention for PR merges - Creates GitHub Release with downloadable zips when version tags (v*) are pushed - Packages all server executables and required DLLs into platform-specific zips --- .github/workflows/release.yaml | 171 +++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 000000000..180f7d977 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,171 @@ +name: Release + +on: + push: + branches: + - master + tags: + - 'v*' + +jobs: + build-linux: + name: Build Linux + runs-on: ubuntu-latest + steps: + - name: Checkout source + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Setup ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-release-ccache + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y build-essential ninja-build ccache uuid-dev + + - name: Configure + run: | + cmake -S . -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_C_COMPILER_LAUNCHER=ccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ + -DEQEMU_BUILD_LOGIN=ON \ + -DEQEMU_BUILD_LUA=ON \ + -DEQEMU_BUILD_PERL=ON \ + -DEQEMU_BUILD_CLIENT_FILES=ON + + - name: Build + run: cmake --build build --parallel + + - name: Package binaries + run: | + cd build/bin + zip -j eqemu-server-linux-x64.zip \ + world zone ucs queryserv eqlaunch shared_memory \ + loginserver import_client_files export_client_files \ + 2>/dev/null || true + # Include any additional binaries that exist + for f in *; do + if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then + zip -u eqemu-server-linux-x64.zip "$f" 2>/dev/null || true + fi + done + ls -la eqemu-server-linux-x64.zip + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: eqemu-server-linux-x64 + path: build/bin/eqemu-server-linux-x64.zip + retention-days: 90 + + build-windows: + name: Build Windows + runs-on: windows-latest + steps: + - name: Checkout source + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Enable long paths + run: git config --global core.longpaths true + + - name: Setup MSVC environment + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + + - name: Configure + shell: pwsh + run: | + cmake -S . -B build -G "Visual Studio 17 2022" -A x64 ` + -DCMAKE_BUILD_TYPE=RelWithDebInfo ` + -DEQEMU_BUILD_LOGIN=ON ` + -DEQEMU_BUILD_LUA=ON ` + -DEQEMU_BUILD_ZLIB=ON ` + -DEQEMU_BUILD_CLIENT_FILES=ON + + - name: Build + shell: pwsh + run: cmake --build build --config RelWithDebInfo --target ALL_BUILD -- /m + + - name: Package binaries + shell: pwsh + run: | + $binDir = "build/bin/RelWithDebInfo" + $outZip = "eqemu-server-windows-x64.zip" + + # Collect all exe and dll files + $files = @() + + # Add executables (exclude tests.exe) + Get-ChildItem -Path $binDir -Filter "*.exe" | Where-Object { $_.Name -ne "tests.exe" } | ForEach-Object { + $files += $_.FullName + } + + # Add DLLs from bin directory + Get-ChildItem -Path $binDir -Filter "*.dll" -ErrorAction SilentlyContinue | ForEach-Object { + $files += $_.FullName + } + + # Add zlib DLLs if they exist + $zlibDir = "build/libs/zlibng/RelWithDebInfo" + if (Test-Path $zlibDir) { + Get-ChildItem -Path $zlibDir -Filter "*.dll" -ErrorAction SilentlyContinue | ForEach-Object { + $files += $_.FullName + } + } + + # Create zip + Compress-Archive -Path $files -DestinationPath $outZip -Force + + # Show contents + Write-Host "Package contents:" + Get-ChildItem $outZip | Format-List + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: eqemu-server-windows-x64 + path: eqemu-server-windows-x64.zip + retention-days: 90 + + release: + name: Create Release + needs: [build-linux, build-windows] + runs-on: ubuntu-latest + # Only run on tag pushes + if: startsWith(github.ref, 'refs/tags/v') + permissions: + contents: write + steps: + - name: Download Linux artifact + uses: actions/download-artifact@v4 + with: + name: eqemu-server-linux-x64 + path: artifacts/ + + - name: Download Windows artifact + uses: actions/download-artifact@v4 + with: + name: eqemu-server-windows-x64 + path: artifacts/ + + - name: List artifacts + run: ls -la artifacts/ + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + name: Release ${{ github.ref_name }} + draft: false + prerelease: false + generate_release_notes: true + files: | + artifacts/eqemu-server-linux-x64.zip + artifacts/eqemu-server-windows-x64.zip From f1303c564032898acb474f37bee3b5f64edf6319 Mon Sep 17 00:00:00 2001 From: Vayle <76063792+Valorith@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:52:53 -0500 Subject: [PATCH 02/18] Update .github/workflows/release.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/release.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 180f7d977..166d9ea8b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -88,6 +88,7 @@ jobs: -DEQEMU_BUILD_LOGIN=ON ` -DEQEMU_BUILD_LUA=ON ` -DEQEMU_BUILD_ZLIB=ON ` + -DEQEMU_BUILD_PERL=ON ` -DEQEMU_BUILD_CLIENT_FILES=ON - name: Build From 5caa4a78dc395efa48a05854a2a16e413408d00f Mon Sep 17 00:00:00 2001 From: Vayle <76063792+Valorith@users.noreply.github.com> Date: Sat, 24 Jan 2026 13:58:59 -0500 Subject: [PATCH 04/18] Update .github/workflows/release.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/release.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 166d9ea8b..0e016ce36 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -46,12 +46,11 @@ jobs: cd build/bin zip -j eqemu-server-linux-x64.zip \ world zone ucs queryserv eqlaunch shared_memory \ - loginserver import_client_files export_client_files \ - 2>/dev/null || true + loginserver import_client_files export_client_files # Include any additional binaries that exist for f in *; do if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then - zip -u eqemu-server-linux-x64.zip "$f" 2>/dev/null || true + zip -u eqemu-server-linux-x64.zip "$f" fi done ls -la eqemu-server-linux-x64.zip From 3716422af8bd057880611a781bdc88166586b57e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:59:54 +0000 Subject: [PATCH 06/18] Fix duplicate binary packaging in Linux build Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 166d9ea8b..6c30cda94 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -44,14 +44,10 @@ jobs: - name: Package binaries run: | cd build/bin - zip -j eqemu-server-linux-x64.zip \ - world zone ucs queryserv eqlaunch shared_memory \ - loginserver import_client_files export_client_files \ - 2>/dev/null || true - # Include any additional binaries that exist + # Add all executable files (excluding tests) for f in *; do if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then - zip -u eqemu-server-linux-x64.zip "$f" 2>/dev/null || true + zip -j eqemu-server-linux-x64.zip "$f" 2>/dev/null || true fi done ls -la eqemu-server-linux-x64.zip From 50d4ba04ddcbd2bc90f1d9b71bdc45f3ea74a194 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:00:45 +0000 Subject: [PATCH 07/18] Use zip -uj for explicit update behavior Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6c30cda94..a24fe0294 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -47,7 +47,7 @@ jobs: # Add all executable files (excluding tests) for f in *; do if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then - zip -j eqemu-server-linux-x64.zip "$f" 2>/dev/null || true + zip -uj eqemu-server-linux-x64.zip "$f" 2>/dev/null || true fi done ls -la eqemu-server-linux-x64.zip From a49b6f523eb6a26a6e68af2c522fcd6b8ce51cbb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:01:41 +0000 Subject: [PATCH 08/18] Add validation to packaging steps to verify binaries exist Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 71 ++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0e016ce36..9d1ebff76 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -44,15 +44,49 @@ jobs: - name: Package binaries run: | cd build/bin + + # Verify that critical binaries exist + REQUIRED_BINARIES="world zone ucs queryserv eqlaunch shared_memory" + MISSING_BINARIES="" + + for binary in $REQUIRED_BINARIES; do + if [ ! -f "$binary" ]; then + MISSING_BINARIES="$MISSING_BINARIES $binary" + fi + done + + if [ -n "$MISSING_BINARIES" ]; then + echo "Error: Required binaries not found:$MISSING_BINARIES" + echo "Build may have failed. Refusing to create incomplete package." + exit 1 + fi + + # Create zip with core binaries zip -j eqemu-server-linux-x64.zip \ world zone ucs queryserv eqlaunch shared_memory \ loginserver import_client_files export_client_files + # Include any additional binaries that exist for f in *; do if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then zip -u eqemu-server-linux-x64.zip "$f" fi done + + # Verify zip file was created and contains files + if [ ! -f eqemu-server-linux-x64.zip ]; then + echo "Error: Failed to create zip file" + exit 1 + fi + + FILE_COUNT=$(unzip -l eqemu-server-linux-x64.zip | grep -v "Archive:" | grep -v "Length" | grep -v "---" | grep -v "files" | wc -l) + if [ "$FILE_COUNT" -lt 6 ]; then + echo "Error: Zip file contains fewer than expected files ($FILE_COUNT)" + unzip -l eqemu-server-linux-x64.zip + exit 1 + fi + + echo "Successfully packaged $FILE_COUNT files" ls -la eqemu-server-linux-x64.zip - name: Upload artifact @@ -100,6 +134,23 @@ jobs: $binDir = "build/bin/RelWithDebInfo" $outZip = "eqemu-server-windows-x64.zip" + # Verify that critical binaries exist + $requiredBinaries = @("world.exe", "zone.exe", "ucs.exe", "queryserv.exe", "eqlaunch.exe", "shared_memory.exe") + $missingBinaries = @() + + foreach ($binary in $requiredBinaries) { + $path = Join-Path $binDir $binary + if (-not (Test-Path $path)) { + $missingBinaries += $binary + } + } + + if ($missingBinaries.Count -gt 0) { + Write-Host "Error: Required binaries not found: $($missingBinaries -join ', ')" + Write-Host "Build may have failed. Refusing to create incomplete package." + exit 1 + } + # Collect all exe and dll files $files = @() @@ -121,10 +172,30 @@ jobs: } } + # Verify we have files to package + if ($files.Count -eq 0) { + Write-Host "Error: No files found to package" + exit 1 + } + # Create zip Compress-Archive -Path $files -DestinationPath $outZip -Force + # Verify zip was created successfully + if (-not (Test-Path $outZip)) { + Write-Host "Error: Failed to create zip file" + exit 1 + } + + # Verify zip contains files + $zipInfo = Get-Item $outZip + if ($zipInfo.Length -lt 1KB) { + Write-Host "Error: Zip file is suspiciously small ($($zipInfo.Length) bytes)" + exit 1 + } + # Show contents + Write-Host "Successfully packaged $($files.Count) files" Write-Host "Package contents:" Get-ChildItem $outZip | Format-List From 1b8ab775d3b52c7c349434746bd619dfe4b3155f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:02:21 +0000 Subject: [PATCH 09/18] Improve validation: use unzip -Z1 and increase min size threshold Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9d1ebff76..0107e2c2f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -79,7 +79,7 @@ jobs: exit 1 fi - FILE_COUNT=$(unzip -l eqemu-server-linux-x64.zip | grep -v "Archive:" | grep -v "Length" | grep -v "---" | grep -v "files" | wc -l) + FILE_COUNT=$(unzip -Z1 eqemu-server-linux-x64.zip | wc -l) if [ "$FILE_COUNT" -lt 6 ]; then echo "Error: Zip file contains fewer than expected files ($FILE_COUNT)" unzip -l eqemu-server-linux-x64.zip @@ -187,10 +187,11 @@ jobs: exit 1 } - # Verify zip contains files + # Verify zip contains files (minimum 100KB - should contain at least the core binaries) $zipInfo = Get-Item $outZip - if ($zipInfo.Length -lt 1KB) { - Write-Host "Error: Zip file is suspiciously small ($($zipInfo.Length) bytes)" + $minSize = 100KB + if ($zipInfo.Length -lt $minSize) { + Write-Host "Error: Zip file is suspiciously small ($($zipInfo.Length) bytes, expected at least $minSize)" exit 1 } From 8fae26133cc952d5fc82f718df360ee773dd1772 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:03:15 +0000 Subject: [PATCH 10/18] Make validation more maintainable with named constants Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0107e2c2f..0c4af67bd 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -46,10 +46,10 @@ jobs: cd build/bin # Verify that critical binaries exist - REQUIRED_BINARIES="world zone ucs queryserv eqlaunch shared_memory" + REQUIRED_BINARIES=(world zone ucs queryserv eqlaunch shared_memory) MISSING_BINARIES="" - for binary in $REQUIRED_BINARIES; do + for binary in "${REQUIRED_BINARIES[@]}"; do if [ ! -f "$binary" ]; then MISSING_BINARIES="$MISSING_BINARIES $binary" fi @@ -80,8 +80,9 @@ jobs: fi FILE_COUNT=$(unzip -Z1 eqemu-server-linux-x64.zip | wc -l) - if [ "$FILE_COUNT" -lt 6 ]; then - echo "Error: Zip file contains fewer than expected files ($FILE_COUNT)" + EXPECTED_MIN_FILES=${#REQUIRED_BINARIES[@]} + if [ "$FILE_COUNT" -lt "$EXPECTED_MIN_FILES" ]; then + echo "Error: Zip file contains fewer than expected files ($FILE_COUNT, expected at least $EXPECTED_MIN_FILES)" unzip -l eqemu-server-linux-x64.zip exit 1 fi @@ -133,6 +134,8 @@ jobs: run: | $binDir = "build/bin/RelWithDebInfo" $outZip = "eqemu-server-windows-x64.zip" + # Minimum expected zip size (core binaries should be at least this size) + $minZipSize = 100KB # Verify that critical binaries exist $requiredBinaries = @("world.exe", "zone.exe", "ucs.exe", "queryserv.exe", "eqlaunch.exe", "shared_memory.exe") @@ -187,11 +190,10 @@ jobs: exit 1 } - # Verify zip contains files (minimum 100KB - should contain at least the core binaries) + # Verify zip contains files (should contain at least the core binaries) $zipInfo = Get-Item $outZip - $minSize = 100KB - if ($zipInfo.Length -lt $minSize) { - Write-Host "Error: Zip file is suspiciously small ($($zipInfo.Length) bytes, expected at least $minSize)" + if ($zipInfo.Length -lt $minZipSize) { + Write-Host "Error: Zip file is suspiciously small ($($zipInfo.Length) bytes, expected at least $minZipSize)" exit 1 } From 0ebff2e68e7eeeb50387b1f43f69deb6e6fad335 Mon Sep 17 00:00:00 2001 From: Vayle <76063792+Valorith@users.noreply.github.com> Date: Sat, 24 Jan 2026 14:10:00 -0500 Subject: [PATCH 11/18] Update .github/workflows/release.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/release.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 0c4af67bd..d8b0b89fc 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -47,16 +47,16 @@ jobs: # Verify that critical binaries exist REQUIRED_BINARIES=(world zone ucs queryserv eqlaunch shared_memory) - MISSING_BINARIES="" + MISSING_BINARIES=() for binary in "${REQUIRED_BINARIES[@]}"; do if [ ! -f "$binary" ]; then - MISSING_BINARIES="$MISSING_BINARIES $binary" + MISSING_BINARIES+=("$binary") fi done - if [ -n "$MISSING_BINARIES" ]; then - echo "Error: Required binaries not found:$MISSING_BINARIES" + if [ ${#MISSING_BINARIES[@]} -ne 0 ]; then + echo "Error: Required binaries not found: ${MISSING_BINARIES[*]}" echo "Build may have failed. Refusing to create incomplete package." exit 1 fi From 24fb6306ddc1c642d5d87fa8058c138b31477b8e Mon Sep 17 00:00:00 2001 From: Vayle <76063792+Valorith@users.noreply.github.com> Date: Sat, 24 Jan 2026 14:11:16 -0500 Subject: [PATCH 12/18] Update .github/workflows/release.yaml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/release.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d8b0b89fc..ad6b0fb24 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -200,7 +200,16 @@ jobs: # Show contents Write-Host "Successfully packaged $($files.Count) files" Write-Host "Package contents:" - Get-ChildItem $outZip | Format-List + Add-Type -AssemblyName System.IO.Compression.FileSystem + $zip = [System.IO.Compression.ZipFile]::OpenRead($outZip) + try { + foreach ($entry in $zip.Entries) { + Write-Host (" - {0} ({1} bytes)" -f $entry.FullName, $entry.Length) + } + } + finally { + $zip.Dispose() + } - name: Upload artifact uses: actions/upload-artifact@v4 From 4e49ae782b345bf5d5c76a642767278dc075fc00 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:13:29 +0000 Subject: [PATCH 13/18] Add loginserver and client_files binaries to validation list Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ad6b0fb24..4ae14ea10 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -46,7 +46,7 @@ jobs: cd build/bin # Verify that critical binaries exist - REQUIRED_BINARIES=(world zone ucs queryserv eqlaunch shared_memory) + REQUIRED_BINARIES=(world zone ucs queryserv eqlaunch shared_memory loginserver import_client_files export_client_files) MISSING_BINARIES=() for binary in "${REQUIRED_BINARIES[@]}"; do From 1e600896d69ced7e87b79b65aa5df7b8f7159e5c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:16:10 +0000 Subject: [PATCH 14/18] Remove error suppression to resolve conflicts with base branch Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a24fe0294..ca7f7a86e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -47,7 +47,7 @@ jobs: # Add all executable files (excluding tests) for f in *; do if [ -f "$f" ] && [ -x "$f" ] && [ "$f" != "tests" ]; then - zip -uj eqemu-server-linux-x64.zip "$f" 2>/dev/null || true + zip -uj eqemu-server-linux-x64.zip "$f" fi done ls -la eqemu-server-linux-x64.zip From ecf16c5cd763ec61b85122695b97218af9a527bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:40:53 +0000 Subject: [PATCH 16/18] Implement remaining Claude Code review suggestions Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 728904b9e..24ebbe1ef 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,7 +20,7 @@ jobs: - name: Setup ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ runner.os }}-release-ccache + key: ${{ runner.os }}-release-ccache-${{ hashFiles('.github/workflows/release.yaml') }} - name: Install dependencies run: | @@ -83,7 +83,10 @@ jobs: fi echo "Successfully packaged $FILE_COUNT files" - ls -la eqemu-server-linux-x64.zip + ls -lh eqemu-server-linux-x64.zip + echo "" + echo "Package contents:" + unzip -l eqemu-server-linux-x64.zip - name: Upload artifact uses: actions/upload-artifact@v4 @@ -122,7 +125,7 @@ jobs: - name: Build shell: pwsh - run: cmake --build build --config RelWithDebInfo --target ALL_BUILD -- /m + run: cmake --build build --config RelWithDebInfo --target ALL_BUILD -- /m:4 - name: Package binaries shell: pwsh From 07a2a9a31d0f146e17b25849c12765d7b053138e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 19:56:25 +0000 Subject: [PATCH 18/18] Add missing Windows binaries validation and SHA256 checksums Co-authored-by: Valorith <76063792+Valorith@users.noreply.github.com> --- .github/workflows/release.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 24ebbe1ef..05a11bd56 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -136,7 +136,7 @@ jobs: $minZipSize = 100KB # Verify that critical binaries exist - $requiredBinaries = @("world.exe", "zone.exe", "ucs.exe", "queryserv.exe", "eqlaunch.exe", "shared_memory.exe") + $requiredBinaries = @("world.exe", "zone.exe", "ucs.exe", "queryserv.exe", "eqlaunch.exe", "shared_memory.exe", "loginserver.exe", "import_client_files.exe", "export_client_files.exe") $missingBinaries = @() foreach ($binary in $requiredBinaries) { @@ -240,6 +240,12 @@ jobs: - name: List artifacts run: ls -la artifacts/ + - name: Generate checksums + run: | + cd artifacts + sha256sum *.zip > SHA256SUMS.txt + cat SHA256SUMS.txt + - name: Create Release uses: softprops/action-gh-release@v2 with: @@ -250,3 +256,4 @@ jobs: files: | artifacts/eqemu-server-linux-x64.zip artifacts/eqemu-server-windows-x64.zip + artifacts/SHA256SUMS.txt