name: Build (Linux) on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest container: image: archlinux:latest steps: - name: Install base dependencies run: | pacman -Syu --noconfirm archlinux-keyring pacman -Syu --noconfirm base-devel sudo git cmake extra-cmake-modules python wine msitools ca-certificates libwbclient 7zip - name: Create build user run: | useradd -m builder echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers - name: Checkout repository uses: actions/checkout@v4 - name: Fix permissions run: chown -R builder:builder . - name: Build run: | sudo -u builder sh <<'EOF' set -e export WINE=$(command -v wine64 || command -v wine || false) $WINE wineboot git clone https://github.com/mstorsjo/msvc-wine ./msvc-wine/vsdownload.py --accept-license --dest $(pwd)/my_msvc/opt/msvc ./msvc-wine/install.sh $(pwd)/my_msvc/opt/msvc export PATH=$(pwd)/my_msvc/opt/msvc/bin/x64:$PATH CC=cl CXX=cl cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows make -j$(nproc) ls -lh 7z a -r build.zip \ Common \ music \ redist64 \ Windows64 \ Windows64Media \ Effects.msscmp \ iggy_w64.dll \ Minecraft.Client.exe \ mss64.dll EOF - name: Upload artifact/s uses: actions/upload-artifact@v4 with: name: Zip path: | build.zip