CI #398
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: 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.29.3/cmake-3.29.3-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 |