name: Build DevourUnlocker on: push: branches: [ main ] pull_request: workflow_dispatch: jobs: # Cross-compile Windows winhttp.dll on Linux (no native Windows runner on git.mithraic.cloud) windows-cross: runs-on: ubuntu-latest continue-on-error: true steps: - uses: actions/checkout@v4 with: { submodules: recursive } - name: Install mingw + cmake run: sudo apt-get update && sudo apt-get install -y cmake ninja-build mingw-w64 g++-mingw-w64-x86-64 - name: CMake Configure (MinGW cross) run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DBUILD_WINHTTP_PROXY=ON - name: Build (MinGW) run: cmake --build build --config Release || (cat build/CMakeFiles/CMakeError.log; exit 1) - name: Package run: | mkdir -p dist cp build/winhttp.dll dist/ 2>/dev/null || cp build/*.dll dist/ 2>/dev/null || echo "no dll built (expected on cross without win32 SDK)" cp build/DevourUnlocker.dll dist/ 2>/dev/null || true cp DevourUnlocker.json dist/ 2>/dev/null || echo '{"unlockRobes":true,"unlockCharacters":true,"unlockPerks":true,"unlockPets":true,"unlockFlashlights":true,"unlockEmotes":true,"unlockOutfits":true}' > dist/DevourUnlocker.json zip -j DevourUnlocker_winhttp_${{ github.ref_name }}.zip dist/* || true ls -lh dist/ - uses: actions/upload-artifact@v4 with: { name: winhttp-cross, path: DevourUnlocker_winhttp_*.zip } linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: sudo apt-get update && sudo apt-get install -y cmake ninja-build - run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_WINHTTP_PROXY=OFF - run: cmake --build build - uses: actions/upload-artifact@v4 with: { name: linux-so, path: build/*.so } standalone: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: python3 -m py_compile standalone/devour_unlocker.py standalone/gui.py tools/dump_metadata.py