split replayparser replay analysis #341
This file contains hidden or 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] | |
jobs: | |
build-windows: | |
name: 🪟 Build Windows Qt6 | |
env: | |
qt-major-version: 6 | |
qt-version: 6.8.1 | |
clang-version: 19 | |
runs-on: windows-2022 | |
steps: | |
- name: 🧰 Checkout | |
uses: actions/checkout@v4 | |
- name: ⬇️ Setup Visual Studio Shell | |
uses: egor-tensin/vs-shell@v2 | |
with: | |
arch: x64 | |
- name: ⬇️ Setup Conan | |
run: | | |
pip install conan | |
conan profile detect | |
- name: ⬇️ Setup Ninja | |
uses: seanmiddleditch/gha-setup-ninja@v5 | |
with: | |
version: 1.12.1 | |
- name: ⬇️ Install Qt${{ env.qt-major-version }} | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ env.qt-version }} | |
cache: true | |
- name: ⬇️ Install LLVM and Clang | |
uses: KyleMayes/install-llvm-action@v2.0.6 | |
with: | |
version: ${{ env.clang-version }} | |
- name: 🔢 Tool Versions | |
run: | | |
conan --version | |
cmake --version | |
clang-cl --version | |
ninja --version | |
rustc --version | |
- name: 📁 Cache Conan Dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/.conan2 | |
key: hashFiles('**/conanfile.py') | |
- name: 📁 Run Conan | |
run: conan install . --build=missing --profile:all=./.github/conan/profiles/windows-clang-cl | |
- name: 🛠️ Configure | |
env: | |
CC: "${{ env.LLVM_PATH }}\\bin\\clang-cl" | |
CXX: "${{ env.LLVM_PATH }}\\bin\\clang-cl" | |
run: > | |
cmake | |
--preset conan-clang-release | |
-DPA_SUBMIT_URL=${{ secrets.PA_SUBMIT_URL }} | |
-DPA_LOOKUP_URL=${{ secrets.PA_LOOKUP_URL }} | |
-DCMAKE_INSTALL_PREFIX=install | |
-DCPACK_PACKAGE_DIRECTORY=pack | |
- name: 🛠️ Build | |
run: | | |
cmake --build --preset conan-clang-release | |
cmake --install build/clang/Release | |
- name: 📦 CPack | |
working-directory: ./build/clang/Release | |
run: | | |
cpack | |
cpack --config CPackConfig-PotatoAlert.cmake | |
- name: 🧪 CTest | |
working-directory: ./build/clang/Release | |
env: | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
run: ctest | |
- name: ⬆️ Upload Portable ZIP | |
uses: actions/upload-artifact@v4 | |
with: | |
name: PotatoAlert Windows Portable x86_64 | |
path: ./build/clang/Release/pack/PotatoAlert.zip | |
if-no-files-found: error | |
- name: ⬆️ Upload Installer | |
uses: actions/upload-artifact@v4 | |
with: | |
name: PotatoAlert Windows Installer x86_64 | |
path: ./build/clang/Release/pack/PotatoAlert-*.msi | |
if-no-files-found: error | |
- name: 🎫 Create Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
prerelease: true | |
files: | | |
./build/clang/Release/pack/PotatoAlert.zip | |
./build/clang/Release/pack/PotatoAlert-*.msi | |
build-linux: | |
name: 🐧 Build Linux Qt6 | |
env: | |
qt-version: 6.8.1 | |
gcc-version: 14 | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: 🧰 Checkout | |
uses: actions/checkout@v4 | |
- name: ⬇️ Setup Conan | |
run: | | |
pip install conan | |
conan profile detect | |
- name: ⬇️ Setup Ninja | |
run: sudo apt install -y ninja-build | |
- name: ⬇️ Install Dependencies | |
run: > | |
sudo apt install -y | |
libfontconfig1-dev | |
libfreetype6-dev | |
libx11-dev | |
libx11-xcb-dev | |
libxext-dev | |
libxfixes-dev | |
libxi-dev | |
libxrender-dev | |
libxcb1-dev | |
libxcb-cursor-dev | |
libxcb-glx0-dev | |
libxcb-keysyms1-dev | |
libxcb-image0-dev | |
libxcb-shm0-dev | |
libxcb-icccm4-dev | |
libxcb-sync-dev | |
libxcb-xfixes0-dev | |
libxcb-shape0-dev | |
libxcb-randr0-dev | |
libxcb-render-util0-dev | |
libxcb-util-dev | |
libxcb-xinerama0-dev | |
libxcb-xkb-dev | |
libxkbcommon-dev | |
libxkbcommon-x11-dev | |
- name: ⬇️ Install Qt | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ env.qt-version }} | |
cache: true | |
- name: 🔢 Tool Versions | |
run: | | |
conan --version | |
cmake --version | |
g++-${{ env.gcc-version }} --version | |
ninja --version | |
rustc --version | |
- name: 📁 Cache Conan Dependencies | |
uses: actions/cache@v4 | |
with: | |
path: ~/.conan2 | |
key: hashFiles('**/conanfile.py') | |
- name: 📁 Run Conan | |
run: conan install . --build=missing --profile:all=./.github/conan/profiles/linux-gcc | |
- name: 🛠️ Configure | |
env: | |
CC: gcc-${{ env.gcc-version }} | |
CXX: g++-${{ env.gcc-version }} | |
run: > | |
cmake | |
--preset conan-gcc-release | |
-DPA_SUBMIT_URL=${{ secrets.PA_SUBMIT_URL }} | |
-DPA_LOOKUP_URL=${{ secrets.PA_LOOKUP_URL }} | |
-DCMAKE_INSTALL_PREFIX=install | |
-DCPACK_PACKAGE_DIRECTORY=pack | |
- name: 🛠️ Build | |
run: | | |
cmake --build --preset conan-gcc-release | |
cmake --install build/gcc/Release | |
- name: 📦 CPack | |
working-directory: ./build/gcc/Release | |
run: | | |
cpack --config CPackConfig-PotatoAlert.cmake | |
mv -v ./pack/PotatoAlert.zip ./pack/PotatoAlert_linux.zip | |
- name: 🧪 CTest | |
working-directory: ./build/gcc/Release | |
env: | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
run: ctest | |
- name: ⬆️ Upload Portable ZIP | |
uses: actions/upload-artifact@v4 | |
with: | |
name: PotatoAlert Linux Portable x86_64 | |
path: ./build/gcc/Release/pack/PotatoAlert_linux.zip | |
if-no-files-found: error | |
- name: 🎫 Create Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
prerelease: true | |
files: ./build/gcc/Release/pack/PotatoAlert_linux.zip |