Update build.yml #648
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
push: | |
workflow_call: | |
jobs: | |
TC-Eluna: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- eluna: OFF | |
lua: lua52 | |
- eluna: ON | |
lua: lua51 | |
- eluna: ON | |
lua: lua52 | |
- eluna: ON | |
lua: lua53 | |
- eluna: ON | |
lua: lua54 | |
- eluna: ON | |
lua: luajit | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: false | |
repository: ElunaLuaEngine/ElunaTrinityWotlk | |
- uses: actions/checkout@v4 | |
with: | |
path: src/server/game/LuaEngine | |
- name: Dependencies | |
run: | | |
sudo apt-get update && sudo apt-get install -yq libboost-all-dev g++-11 | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11 | |
- name: Setup | |
env: | |
ELUNA: ${{ matrix.eluna }} | |
LUA: ${{ matrix.lua }} | |
run: | | |
mkdir bin | |
cd bin | |
cmake ../ -DELUNA=$ELUNA -DLUA_VERSION=$LUA -DWITH_WARNINGS=1 -DWITH_COREDEBUG=0 -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSCRIPTS=dynamic -DSERVERS=1 -DNOJEM=0 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1 | |
cd .. | |
- name: Build | |
run: | | |
cd bin | |
make -j 4 -k && make install | |
- name: Unit tests | |
run: | | |
cd bin | |
make test | |
- name: Check executables | |
run: | | |
cd bin/check_install/bin | |
./authserver --version | |
./worldserver --version | |
# Cata preservation project has been abandoned, so no need for further build checks on this project | |
# CataPres-Eluna: | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# eluna: [ON] | |
# runs-on: ubuntu-20.04 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: false | |
# repository: Niam5/ElunaCataPreservation | |
# - uses: actions/checkout@v4 | |
# with: | |
# path: src/server/game/LuaEngine | |
# - name: Dependencies | |
# run: | | |
# sudo apt-get update && sudo apt-get install -yq libboost-all-dev | |
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 | |
# - name: Setup | |
# env: | |
# ELUNA: ${{ matrix.eluna }} | |
# run: | | |
# mkdir bin | |
# cd bin | |
# cmake ../ -DELUNA=$ELUNA -DUSE_COREPCH=1 -DUSE_SCRIPTPCH=1 -DTOOLS=1 -DSERVERS=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_CXX_FLAGS_DEBUG="-DNDEBUG" -DCMAKE_INSTALL_PREFIX=check_install -DBUILD_TESTING=1 | |
# cd .. | |
# - name: Build | |
# run: | | |
# cd bin | |
# make -j 4 -k && make install | |
# - name: Unit tests | |
# run: | | |
# cd bin | |
# make test | |
# - name: Check executables | |
# run: | | |
# cd bin/check_install/bin | |
# ./bnetserver --version | |
# ./worldserver --version | |
# AC-Eluna: | |
# strategy: | |
# fail-fast: false | |
# runs-on: ubuntu-20.04 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: recursive | |
# repository: azerothcore/azerothcore-wotlk | |
# ref: 'master' | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: false | |
# repository: azerothcore/mod-eluna-lua-engine | |
# path: modules/mod-eluna-lua-engine | |
# - uses: actions/checkout@v4 | |
# with: | |
# path: modules/mod-eluna-lua-engine/LuaEngine | |
# - name: Configure OS | |
# run: | | |
# # Copy paste of https://github.com/azerothcore/azerothcore-wotlk/blob/master/apps/ci/ci-install.sh | |
# | |
# cat >>conf/config.sh <<CONFIG_SH | |
# MTHREADS=4 | |
# CWARNINGS=ON | |
# CDEBUG=OFF | |
# CTYPE=Release | |
# CSCRIPTS=static | |
# CUNIT_TESTS=ON | |
# CSERVERS=ON | |
# CTOOLS=ON | |
# CSCRIPTPCH=ON | |
# CCOREPCH=ON | |
# CCUSTOMOPTIONS='-DCMAKE_C_FLAGS="-Werror" -DCMAKE_CXX_FLAGS="-Werror"' | |
# DB_CHARACTERS_CONF="MYSQL_USER='root'; MYSQL_PASS='root'; MYSQL_HOST='localhost';" | |
# DB_AUTH_CONF="MYSQL_USER='root'; MYSQL_PASS='root'; MYSQL_HOST='localhost';" | |
# DB_WORLD_CONF="MYSQL_USER='root'; MYSQL_PASS='root'; MYSQL_HOST='localhost';" | |
# CONFIG_SH | |
# | |
# time sudo apt-get update -y | |
# # time sudo apt-get upgrade -y | |
# time sudo apt-get install -y git lsb-release sudo ccache | |
# time ./acore.sh install-deps | |
# | |
# time sudo apt-get install -y clang-11 | |
# echo "CCOMPILERC=\"clang-11\"" >> ./conf/config.sh | |
# echo "CCOMPILERCXX=\"clang++-11\"" >> ./conf/config.sh | |
# - name: Import db | |
# run: source ./apps/ci/ci-import-db.sh | |
# - name: Build | |
# run: source ./apps/ci/ci-compile.sh | |
# - name: Dry run | |
# run: source ./apps/ci/ci-worldserver-dry-run.sh | |
# - name: Check startup errors | |
# run: source ./apps/ci/ci-error-check.sh | |
# Disable Mangos builds for now until Mangos deps are fixed and multistate can be ported | |
# mangos-Eluna: | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# eluna: [ON, OFF] | |
# patch: [zero, one, two] | |
# runs-on: ubuntu-20.04 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# with: | |
# submodules: recursive | |
# repository: mangos${{ matrix.patch }}/server | |
# ref: master | |
# - uses: actions/checkout@v4 | |
# with: | |
# path: src/modules/Eluna | |
# - name: Configure | |
# env: | |
# ELUNA: ${{ matrix.eluna }} | |
# run: | | |
# mkdir bin | |
# cd bin | |
# cmake .. -DSCRIPT_LIB_ELUNA=$ELUNA -DCMAKE_INSTALL_PREFIX=install -DSOAP=1 -DPLAYERBOTS=0 -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/ | |
# cd .. | |
# - name: Build | |
# run: | | |
# cd bin | |
# make -j4 | |
# make install | |
cmangos-Eluna: | |
strategy: | |
fail-fast: false | |
matrix: | |
eluna: [ON, OFF] | |
patch: [Classic, TBC, WotLK, Cata] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: false | |
repository: Niam5/Eluna-CMaNGOS-${{ matrix.patch }} | |
ref: master | |
- uses: actions/checkout@v4 | |
with: | |
path: src/game/LuaEngine | |
- name: Dependencies and Environment | |
run: | | |
echo "CC=gcc-12" >> $GITHUB_ENV | |
echo "CXX=g++-12" >> $GITHUB_ENV | |
sudo apt-get update && sudo apt-get install -yq libboost-all-dev | |
- name: Configure | |
env: | |
ELUNA: ${{ matrix.eluna }} | |
run: | | |
mkdir bin | |
cd bin | |
cmake .. -DBUILD_ELUNA=$ELUNA -DCMAKE_INSTALL_PREFIX=install -DBUILD_PLAYERBOT=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl/ | |
cd .. | |
- name: Build | |
run: | | |
cd bin | |
make -j4 | |
make install | |
vmangos-Eluna: | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: false | |
repository: Eluna-Ports/Eluna-VMaNGOS | |
ref: development | |
- uses: actions/checkout@v4 | |
with: | |
path: src/modules/Eluna | |
- name: Dependencies | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get -qq install build-essential cmake cppcheck git libace-dev libiberty-dev libmysql++-dev libssl-dev libtbb-dev make openssl | |
- name: Configure and Build | |
run: | | |
mkdir build | |
mkdir _install | |
cd build | |
cmake ../ -DCMAKE_INSTALL_PREFIX=../_install -DWITH_WARNINGS=0 -DUSE_EXTRACTORS=1 | |
make -j2 | |
make install | |
mangos-Eluna: | |
strategy: | |
fail-fast: false | |
matrix: | |
eluna: [1, 0] | |
# patch: [Classic, TBC, WotLK, Cata] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
repository: Niam5/server | |
ref: master | |
- uses: actions/checkout@v4 | |
with: | |
path: src/game/LuaEngine | |
- name: Dependencies and Environment | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y git make cmake clang libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-dev | |
# sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 | |
# sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100 | |
- name: Configure | |
env: | |
ELUNA: ${{ matrix.eluna }} | |
run: | | |
test -d _build || mkdir _build | |
test -d _install || mkdir _install | |
cd _build | |
cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DBUILD_TOOLS:BOOL=1 -DBUILD_MANGOSD:BOOL=1 -DBUILD_REALMD:BOOL=1 -DSOAP:BOOL=1 -DSCRIPT_LIB_ELUNA:BOOL=$ELUNA -DSCRIPT_LIB_SD3:BOOL=1 -DPLAYERBOTS:BOOL=1 -DUSE_STORMLIB:BOOL=1 | |
- name: Build | |
run: | | |
cd _build | |
make -j 6 |