name: CI on: push: branches: [ develop ] pull_request: branches: [ develop ] workflow_dispatch: schedule: - cron: "0 0 1 * *" jobs: build-linux: name: build-linux runs-on: ubuntu-latest steps: - uses: actions/checkout@main with: submodules: 'recursive' - name: Install Dependencies run: | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 sudo add-apt-repository 'deb http://dk.archive.ubuntu.com/ubuntu/ bionic main' sudo add-apt-repository 'deb http://dk.archive.ubuntu.com/ubuntu/ bionic universe' sudo apt update sudo apt install libgl1-mesa-dev qttools5-dev g++-5 gcc-5 - name: Build run: | export JAVA_HOME=$JAVA_HOME_8_X64 mkdir build cd build cmake \ -DCMAKE_C_COMPILER=/usr/bin/gcc-5 \ -DCMAKE_CXX_COMPILER=/usr/bin/g++-5 \ -DCMAKE_BUILD_TYPE=Release \ -DLauncher_NOTIFICATION_URL:STRING=https://files.multimc.org/notifications.json \ -DCMAKE_INSTALL_PREFIX:PATH=/home/runner/UltimMC/UltimMC \ -DLauncher_UPDATER_BASE=https://files.multimc.org/update/ \ -DLauncher_PASTE_EE_API_KEY:STRING=utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ \ -DLauncher_ANALYTICS_ID:STRING=UA-87731965-2 \ -DLauncher_LAYOUT=lin-nodeps \ -DLauncher_BUILD_PLATFORM=lin64 \ -DLauncher_BUG_TRACKER_URL=https://github.com/UltimMC/Launcher/issues \ -DLauncher_EMBED_SECRETS=On \ $GITHUB_WORKSPACE - name: Compile run: | cd build make -j$(nproc) - name: Test run: | cd build make test cmake -E remove_directory "/home/runner/UltimMC/UltimMC" - name: Install run: | cd build make install chmod +x /home/runner/UltimMC/UltimMC/UltimMC chmod +x /home/runner/UltimMC/UltimMC/bin/UltimMC - name: Upload Artifacts uses: actions/upload-artifact@main with: name: mmc-cracked-lin64 path: /home/runner/UltimMC build-windows: name: build-windows runs-on: windows-latest steps: - uses: actions/checkout@main with: submodules: 'recursive' - name: Cache Qt uses: actions/cache@main id: qt-cached with: path: "D:/Qt" key: ${{ runner.os }}-qt56-installed-d - name: Cache Qt Installer uses: actions/cache@main if: steps.qt-cached.outputs.cache-hit != 'true' id: installer-cached with: path: "installer.exe" key: ${{ runner.os }}-qt56-installer - name: Create QtAccount File if: steps.qt-cached.outputs.cache-hit != 'true' run: | mkdir C:/Users/runneradmin/AppData/Roaming/Qt/ curl https://gist.github.com/Neptune650/1086e0a3126be6a66580b71afcf8bd99/raw/797d8b90edf07ce88f265b38a573cc6b1fb45bfb/qtaccount.txt --output C:/Users/runneradmin/AppData/Roaming/Qt/qtaccount.ini - name: Download Qt Installer if: steps.installer-cached.outputs.cache-hit != 'true' && steps.qt-cached.outputs.cache-hit != 'true' run: curl https://download.qt.io/new_archive/qt/5.6/5.6.3/qt-opensource-windows-x86-mingw492-5.6.3.exe --output installer.exe - name: Download Qt non-Interactive Script if: steps.qt-cached.outputs.cache-hit != 'true' run: curl https://gist.githubusercontent.com/Neptune650/aa6c051abc17e7d9d609add7f6dfd16a/raw/074dedb7525c0ffc010b39871615b008c2efbcd6/qt-installer-noninteractive.qs --output nonInteractive.qs - name: Install Qt if: steps.qt-cached.outputs.cache-hit != 'true' shell: cmd run: installer.exe -v --script nonInteractive.qs --silent - name: Setup CMake run: | curl -L https://github.com/Kitware/CMake/releases/download/v3.30.4/cmake-3.30.4-windows-i386.zip -o cmake.zip unzip cmake.zip - name: Setup JDK uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: '8' architecture: x86 - name: Setup zlib run: | mkdir zlib cd zlib C:\msys64\usr\bin\wget.exe -O zlib.zip https://downloads.sourceforge.net/project/gnuwin32/zlib/1.2.3/zlib-1.2.3-bin.zip C:\msys64\usr\bin\wget.exe -O zliblibs.zip https://downloads.sourceforge.net/project/gnuwin32/zlib/1.2.3/zlib-1.2.3-lib.zip unzip zlib.zip unzip zliblibs.zip - name: Setup OpenSSL run: | mkdir OpenSSL cd OpenSSL curl -L https://files.catbox.moe/ctwswu.dll -o libeay32.dll curl -L https://files.catbox.moe/ie9e77.dll -o ssleay32.dll - name: Build shell: cmd if: steps.build-cached.outputs.cache-hit != 'true' run: | for /f "tokens=*" %%n in ('powershell -NoLogo -Command "$(ls $pwd\cmake-*-windows-i386\bin).Fullname"') do @(set PATHCM=%%n) set PATH=D:\Qt\5.6.3\mingw49_32\bin;D:\Qt\Tools\mingw492_32\bin; set PATH=%CD%\zlib;%CD%\zlib\bin;%CD%\zlib\lib;%CD%\zlib\include;%PATH% set PATH=%CD%\OpenSSL;%PATH% set PATH=%PATHCM%;%PATH% mkdir build cd build cmake ^ -DCMAKE_C_COMPILER=gcc ^ -DCMAKE_CXX_COMPILER=g++ ^ -DCMAKE_BUILD_TYPE=Release ^ -DLauncher_NOTIFICATION_URL:STRING=https://files.multimc.org/notifications.json ^ -DCMAKE_INSTALL_PREFIX:PATH="D:/UltimMC/UltimMC" ^ -DCMAKE_PREFIX_PATH="D:\Qt\5.6.3\mingw49_32" ^ -DQt5_DIR="D:\Qt\5.6.3\mingw49_32" ^ -DLauncher_UPDATER_BASE=https://files.multimc.org/update/ ^ -DLauncher_PASTE_EE_API_KEY:STRING=utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ ^ -DLauncher_ANALYTICS_ID:STRING=UA-87731965-2 ^ -DLauncher_LAYOUT=win-bundle ^ -DLauncher_BUILD_PLATFORM=win32 ^ -DLauncher_BUG_TRACKER_URL=https://github.com/UltimMC/Launcher/issues ^ -DLauncher_EMBED_SECRETS=On ^ -G "MinGW Makefiles" ^ .. - name: Compile shell: cmd run: | for /f "tokens=*" %%n in ('powershell -NoLogo -Command "$(ls $pwd\cmake-*-windows-i386\bin).Fullname"') do @(set PATHCM=%%n) set PATH=D:\Qt\5.6.3\mingw49_32\bin;D:\Qt\Tools\mingw492_32\bin; set PATH=%CD%\zlib;%CD%\zlib\bin;%PATH% set PATH=%CD%\OpenSSL;%PATH% set PATH=%PATHCM%;%PATH% set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%PATH% cd build mingw32-make -j%NUMBER_OF_PROCESSORS% - name: Test shell: cmd run: | for /f "tokens=*" %%n in ('powershell -NoLogo -Command "$(ls $pwd\cmake-*-windows-i386\bin).Fullname"') do @(set PATHCM=%%n) set PATH=D:\Qt\5.6.3\mingw49_32\bin;D:\Qt\Tools\mingw492_32\bin; set PATH=%CD%\zlib;%CD%\zlib\bin;%PATH% set PATH=%CD%\OpenSSL;%PATH% set PATH=%PATHCM%;%PATH% set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%PATH% cd build mingw32-make test cmake -E remove_directory "D:/UltimMC/UltimMC" - name: Install shell: cmd run: | for /f "tokens=*" %%n in ('powershell -NoLogo -Command "$(ls $pwd\cmake-*-windows-i386\bin).Fullname"') do @(set PATHCM=%%n) set PATH=D:\Qt\5.6.3\mingw49_32\bin;D:\Qt\Tools\mingw492_32\bin; set PATH=%CD%\zlib;%CD%\zlib\bin;%PATH% set PATH=%CD%\OpenSSL;%PATH% set PATH=%PATHCM%;%PATH% set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%PATH% cd build mingw32-make install - name: Copy OpenSSL shell: cmd run: | cp OpenSSL/ssleay32.dll D:/UltimMC/UltimMC/ssleay32.dll cp OpenSSL/libeay32.dll D:/UltimMC/UltimMC/libeay32.dll - name: Upload Artifacts uses: actions/upload-artifact@main with: name: mmc-cracked-win32 path: "D:/UltimMC" build-mac: name: build-mac runs-on: macos-13 steps: - uses: actions/checkout@main with: submodules: 'recursive' - name: Cache Dependencies uses: actions/cache@main with: path: /Users/runner/Library/Caches/Homebrew key: ${{ runner.os }}-deps-cache - name: Install Dependencies run: | brew cleanup brew install qt@5 - name: Build run: | mkdir build cd build cmake \ -DCMAKE_C_COMPILER=/usr/bin/clang \ -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \ -DCMAKE_BUILD_TYPE=Release \ -DLauncher_NOTIFICATION_URL:STRING=https://files.multimc.org/notifications.json \ -DCMAKE_INSTALL_PREFIX:PATH="/Users/runner/work/UltimMC/build/dist" \ -DCMAKE_PREFIX_PATH="$(brew --prefix qt@5)/lib/cmake" \ -DQt5_DIR="$(brew --prefix qt@5)" \ -DLauncher_UPDATER_BASE=https://files.multimc.org/update/ \ -DLauncher_PASTE_EE_API_KEY:STRING=utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ \ -DLauncher_ANALYTICS_ID:STRING=UA-87731965-2 \ -DLauncher_LAYOUT=mac-bundle \ -DLauncher_BUILD_PLATFORM=osx64-5.15.2 \ -DLauncher_BUG_TRACKER_URL=https://github.com/UltimMC/Launcher/issues \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \ -DLauncher_EMBED_SECRETS=On \ $GITHUB_WORKSPACE - name: Compile run: | cd build make -j$(sysctl -n hw.logicalcpu) - name: Test run: | cd build make test cmake -E remove_directory "/Users/runner/work/UltimMC/build/dist" - name: Install run: | cd build make install chmod +x /Users/runner/work/UltimMC/build/dist/UltimMC.app/Contents/MacOS/UltimMC - name: Upload Artifacts uses: actions/upload-artifact@main with: name: mmc-cracked-osx64 path: /Users/runner/work/UltimMC/build/dist