some cleanup
This commit is contained in:
@@ -1,180 +0,0 @@
|
||||
name: Build (Windows x64)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
branches: [ "main" ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-2022
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: RelWithDebInfo
|
||||
MYSQL_ROOT_DIR: C:/Program Files/MySQL/MySQL Server 8.0
|
||||
OPENSSL_ROOT_DIR: C:/libs/openssl
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Get current OpenSSL version
|
||||
id: openssl-info
|
||||
run: |
|
||||
$VersionsUrl = "https://api.github.com/repos/slproweb/opensslhashes/contents/win32_openssl_hashes.json"
|
||||
$Headers = @{
|
||||
Accept="application/vnd.github.raw+json"
|
||||
Authorization="Bearer ${{ secrets.GITHUB_TOKEN }}"
|
||||
}
|
||||
$openSSL = (Invoke-RestMethod $VersionsUrl -Headers $Headers).files.PSObject.Properties |
|
||||
Select-Object -ExpandProperty Value |
|
||||
Where-Object { $_.arch -eq 'INTEL' } |
|
||||
Where-Object { $_.bits -eq '64' } |
|
||||
Where-Object { $_.light -eq $false } |
|
||||
Where-Object { $_.installer -eq 'exe' } |
|
||||
Sort-Object -Descending @{ Expression = { [version]$_.basever } } |
|
||||
Select-Object -First 1
|
||||
[System.String]::Format("cache-key=openssl-{0}-win-{1}-{2}", $openSSL.basever, $openSSL.arch, $openSSL.bits) >> $env:GITHUB_OUTPUT
|
||||
[System.String]::Format("url={0}", $openSSL.url) >> $env:GITHUB_OUTPUT
|
||||
|
||||
- name: Cache OpenSSL
|
||||
id: cache-openssl
|
||||
uses: actions/cache@v6
|
||||
with:
|
||||
path: ${{ env.OPENSSL_ROOT_DIR }}
|
||||
key: ${{ steps.openssl-info.outputs.cache-key }}
|
||||
|
||||
- name: Download and install OpenSSL 3.x
|
||||
if: ${{ steps.cache-openssl.outputs.cache-hit != 'true' }}
|
||||
run: |
|
||||
(New-Object System.Net.WebClient).DownloadFile("${{ steps.openssl-info.outputs.url }}", "${{ env.TEMP }}\openssl.exe")
|
||||
Start-Process -Wait -FilePath "${{ env.TEMP }}\openssl.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES",/DIR=${{ env.OPENSSL_ROOT_DIR }}
|
||||
|
||||
# Quick OpenSSL install test
|
||||
& ${{ env.OPENSSL_ROOT_DIR }}/bin/openssl.exe version
|
||||
|
||||
- name: Download and install Boost
|
||||
uses: MarkusJx/install-boost@v2
|
||||
id: install-boost
|
||||
with:
|
||||
boost_version: 1.89.0
|
||||
link: static
|
||||
platform_version: 2022
|
||||
toolset: msvc
|
||||
|
||||
- name: Configure CMake
|
||||
env:
|
||||
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
|
||||
OPENSSL_ROOT_DIR: C:/libs/openssl
|
||||
run: >
|
||||
cmake -S ${{ github.workspace }} -B build -G"Visual Studio 17 2022" -A x64
|
||||
-DSCRIPTS=static
|
||||
-DWITH_WARNINGS_AS_ERRORS=OFF
|
||||
-DTOOLS=ON
|
||||
|
||||
- name: Build
|
||||
run: >
|
||||
cmake --build build --config RelWithDebInfo
|
||||
|
||||
- name: Copy Dependencies
|
||||
shell: pwsh
|
||||
run: |
|
||||
cd build/bin/${{ env.CMAKE_BUILD_TYPE }}
|
||||
Copy-Item "${{ env.MYSQL_ROOT_DIR }}/lib/libmysql.dll" .
|
||||
# mysql may depend on a different version of openssl so copy its dlls first (override later with openssl's own if same version)
|
||||
Copy-Item "${{ env.MYSQL_ROOT_DIR }}/bin/libcrypto-3-x64.dll" . -ErrorAction SilentlyContinue
|
||||
Copy-Item "${{ env.MYSQL_ROOT_DIR }}/bin/libssl-3-x64.dll" . -ErrorAction SilentlyContinue
|
||||
Copy-Item "${{ env.OPENSSL_ROOT_DIR }}/bin/libcrypto-3-x64.dll" . -ErrorAction SilentlyContinue
|
||||
Copy-Item "${{ env.OPENSSL_ROOT_DIR }}/bin/libssl-3-x64.dll" . -ErrorAction SilentlyContinue
|
||||
Copy-Item "${{ env.OPENSSL_ROOT_DIR }}/bin/legacy.dll" . -ErrorAction SilentlyContinue
|
||||
Copy-Item "${{ env.MYSQL_ROOT_DIR }}/bin/zlib1.dll" . -ErrorAction SilentlyContinue
|
||||
|
||||
- name: Check binaries
|
||||
shell: pwsh
|
||||
run: |
|
||||
cd build/bin/${{ env.CMAKE_BUILD_TYPE }}
|
||||
foreach ($exe in @("bnetserver.exe", "worldserver.exe"))
|
||||
{
|
||||
if (-not (Test-Path $exe)) { Write-Error "Missing binary: $exe"; exit 1 }
|
||||
if ((Get-Item $exe).Length -lt 1MB) { Write-Error "Suspiciously small binary: $exe"; exit 1 }
|
||||
}
|
||||
Write-Output "Required binaries present. Version smoke test (may fail to start in the ephemeral runner DLL env):"
|
||||
cmd.exe /c "bnetserver.exe --version" 2>&1 | ForEach-Object { Write-Output " bnetserver: $_" }
|
||||
cmd.exe /c "worldserver.exe --version" 2>&1 | ForEach-Object { Write-Output " worldserver: $_" }
|
||||
Get-ChildItem *.dll | ForEach-Object { Write-Output " $($_.Name) ($($_.Length) bytes)" }
|
||||
Write-Output "Binary + package validation passed."
|
||||
exit 0
|
||||
|
||||
- name: Create zip
|
||||
shell: pwsh
|
||||
run: |
|
||||
cd build/bin
|
||||
7z a TrinityCoreWin64VS2022.zip .\RelWithDebInfo\* | Out-Null
|
||||
Remove-Item RelWithDebInfo\*.pdb
|
||||
7z a TrinityCoreWin64VS2022NoSymbols.zip .\RelWithDebInfo\* | Out-Null
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: TrinityCoreWin64VS2022
|
||||
path: build/bin/TrinityCoreWin64VS2022.zip
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Artifacts (NoSymbols)
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: TrinityCoreWin64VS2022NoSymbols
|
||||
path: build/bin/TrinityCoreWin64VS2022NoSymbols.zip
|
||||
if-no-files-found: error
|
||||
|
||||
linux-build:
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: RelWithDebInfo
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -yq \
|
||||
ninja-build \
|
||||
pkg-config \
|
||||
libboost-all-dev \
|
||||
libssl-dev \
|
||||
libreadline-dev \
|
||||
zlib1g-dev \
|
||||
libbz2-dev \
|
||||
default-libmysqlclient-dev \
|
||||
default-mysql-client
|
||||
|
||||
- name: Configure CMake
|
||||
run: >
|
||||
cmake -GNinja -S ${{ github.workspace }} -B build-linux
|
||||
-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }}
|
||||
-DSCRIPTS=static
|
||||
-DWITH_WARNINGS_AS_ERRORS=OFF
|
||||
-DTOOLS=ON
|
||||
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install
|
||||
|
||||
- name: Build
|
||||
run: >
|
||||
cmake --build build-linux
|
||||
|
||||
- name: Check binaries
|
||||
run: |
|
||||
cmake --install build-linux
|
||||
cd ${{ github.workspace }}/install/bin
|
||||
./bnetserver --version
|
||||
./worldserver --version
|
||||
|
||||
- name: Create tar.gz
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
tar -czf TrinityCoreLinux64.tar.gz -C install .
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: TrinityCoreLinux64
|
||||
path: TrinityCoreLinux64.tar.gz
|
||||
if-no-files-found: error
|
||||
@@ -3,22 +3,6 @@
|
||||
WowCommunity Project is a World of Warcraft blizzlike design based on TrinityCore, which is based on the Midnight Expansion version 12.1.0.69587.
|
||||
|
||||
|
||||
# CI Status:
|
||||
|
||||
[](https://github.com/Thordekk/WowCommunityProject/actions/workflows/build.yml)
|
||||
|
||||
|
||||
# Downloads:
|
||||
|
||||
- [Windows x64 (con símbolos)](https://github.com/Thordekk/WowCommunityProject/actions/workflows/build.yml)
|
||||
|
||||
- [Windows x64 (sin símbolos)](https://github.com/Thordekk/WowCommunityProject/actions/workflows/build.yml)
|
||||
|
||||
- [Linux x64](https://github.com/Thordekk/WowCommunityProject/actions/workflows/build.yml)
|
||||
|
||||
Los artefactos se encuentran al final de cada ejecución en la pestaña Actions → build → Artifacts.
|
||||
|
||||
|
||||
# Developers:
|
||||
|
||||
- [Burkinc](https://github.com/Burkinc)
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user