feat: config to force client name updates #53
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: Client | |
on: | |
push: | |
branches: [ main ] | |
paths-ignore: | |
- 'BallanceMMOServer/**' | |
- '.git*' | |
- 'README.md' | |
- '.github/workflows/server.yml' | |
pull_request: | |
branches: [ main ] | |
paths-ignore: | |
- 'BallanceMMOServer/**' | |
- '.git*' | |
- 'README.md' | |
- '.github/workflows/server.yml' | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
BML_VER: '0.3.43' | |
BMLP_VER: '0.2.3' | |
BOOST_VER: '1.80.0' | |
jobs: | |
build-client: | |
runs-on: windows-latest | |
env: | |
VCPKG_ROOT: ${{github.workspace}}/submodule/vcpkg | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: lukka/get-cmake@latest | |
- name: Fetch git submodules | |
run: git submodule update --init --recursive | |
- name: Download and extract BML ${{env.BML_VER}} | |
working-directory: ${{github.workspace}}/BallanceMMOClient | |
run: | | |
curl -o BML-dev.zip -L https://github.com/yyc12345/BallanceModLoader/releases/download/${{env.BML_VER}}/BML-${{env.BML_VER}}-dev.zip | |
tar -xvf BML-dev.zip include lib | |
mv lib/* lib/BML -ErrorAction Ignore | |
- name: Download and extract BMLPlus ${{env.BMLP_VER}} | |
working-directory: ${{github.workspace}}/BallanceMMOClient | |
run: | | |
curl -o BMLP-dev.zip -L https://github.com/yyc12345/BallanceModLoaderPlus/releases/download/v${{env.BMLP_VER}}/BMLP-${{env.BMLP_VER}}-dev.zip | |
tar -xvf BMLP-dev.zip Include Lib/BMLPlus.lib Lib/ImGui.lib | |
mkdir lib/BMLPlus | |
mv lib/*.lib lib/BMLPlus | |
- name: Download and setup Boost ${{env.BOOST_VER}} headers | |
working-directory: ${{github.workspace}}/BallanceMMOClient | |
# yes we know this is for linux, but we only need its headers so it's fine | |
run: | | |
$BOOST_VER_UNDERSCORES = "${{env.BOOST_VER}}".Replace('.', '_') | |
curl -o boost.tar.gz -L "https://boostorg.jfrog.io/artifactory/main/release/${{env.BOOST_VER}}/source/boost_$BOOST_VER_UNDERSCORES.tar.gz" | |
tar -xzf boost.tar.gz boost_$BOOST_VER_UNDERSCORES/boost | |
New-Item -ItemType Junction -Path include/boost -Target boost_$BOOST_VER_UNDERSCORES/boost | |
# Setup MSVC command prompt environment vars | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- name: Restore artifacts, setup vcpkg | |
uses: lukka/run-vcpkg@v10 | |
with: | |
vcpkgGitCommitId: 861c33057553ee836e7061ffbdabc25ea343145d | |
vcpkgDirectory: '${{env.VCPKG_ROOT}}' | |
vcpkgJsonGlob: vcpkg.json | |
runVcpkgInstall: false | |
# - name: vcpkg check / install dependencies | |
# working-directory: ${{env.VCPKG_ROOT}} | |
# run: vcpkg install --triplet x64-windows | |
- name: Configure CMake | |
run: | | |
echo "`nfile(WRITE version.txt `${BMMO_VER})" | Out-File CMakeLists.txt -Encoding "UTF8" -Append | |
cmake -B ${{github.workspace}}/build -S ${{github.workspace}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_MODE=ON -DVCPKG_MANIFEST_DIR="${{github.workspace}}" -DVCPKG_TARGET_TRIPLET=x86-windows -DVIRTOOLS_SDK_FETCH_FROM_GIT=ON -DBUILD_SERVER=OFF -DBUILD_CLIENT=ON -A Win32 | |
echo "BMMO_VER=$(cat version.txt)" >> $env:GITHUB_ENV | |
echo "SHA_SHORT=$(git rev-parse --short ${{github.sha}})" >> $env:GITHUB_ENV | |
- name: Build | |
working-directory: ${{github.workspace}}/build | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} | |
# - name: List build dir | |
# working-directory: ${{github.workspace}}/build | |
# run: dir | |
- name: Run post-build actions | |
working-directory: ${{github.workspace}}/build/BallanceMMOClient/${{env.BUILD_TYPE}} | |
run: rm BallanceMMOClient.exp, BallanceMMOClient.lib | |
- name: Test | |
working-directory: ${{github.workspace}} | |
run: ctest -C ${{env.BUILD_TYPE}} | |
- name: Release Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: client-windows-${{env.BMMO_VER}}-${{env.SHA_SHORT}} | |
path: build/BallanceMMOClient/${{env.BUILD_TYPE}} |