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 tree - 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 tree 7z a build.zip \ Minecraft.Client/Common Minecraft.Client/music Minecraft.Client/redist64 Minecraft.Client/Windows64 Minecraft.Client/Windows64Media x64/Release \ iggy_w64.dll MinecraftClient.exe mss64.dll || true EOF - name: Upload artifact uses: actions/upload-artifact@v4 with: name: build path: build.zip