Windows x86 Build #5
This file contains hidden or 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: Windows x86 Build | |
| on: | |
| push: | |
| branches: [ master, main, develop ] | |
| paths: | |
| - 'Linux-Application/**' | |
| pull_request: | |
| branches: [ master, main, develop ] | |
| paths: | |
| - 'Linux-Application/**' | |
| workflow_dispatch: | |
| jobs: | |
| build-windows-x86: | |
| runs-on: windows-2022 | |
| name: Windows i686 (32-bit) | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup MSYS2 32-bit | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: MINGW32 | |
| update: true | |
| install: >- | |
| mingw-w64-i686-gcc | |
| mingw-w64-i686-cmake | |
| mingw-w64-i686-make | |
| mingw-w64-i686-pkg-config | |
| mingw-w64-i686-libusb | |
| mingw-w64-i686-ffmpeg | |
| mingw-w64-i686-qt6-base | |
| mingw-w64-i686-qt6-tools | |
| mingw-w64-i686-qt6-serialport | |
| - name: Build Windows x86 | |
| shell: msys2 {0} | |
| working-directory: Linux-Application | |
| run: | | |
| export PKG_CONFIG_PATH="/mingw32/lib/pkgconfig" | |
| echo "=== MINGW32 Environment ===" | |
| uname -a | |
| gcc --version | head -1 | |
| cmake -B build -S . \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -G "MSYS Makefiles" \ | |
| -DCMAKE_SYSTEM_PROCESSOR=i686 | |
| cmake --build build --config Release -j$(nproc) | |
| - name: Test Windows x86 Build | |
| shell: msys2 {0} | |
| working-directory: Linux-Application | |
| run: | | |
| echo "=== Testing Windows i686 Build ===" | |
| build/DomesdayDuplicator/DomesdayDuplicator.exe --version | |
| echo "=== Architecture Verification ===" | |
| file build/DomesdayDuplicator/DomesdayDuplicator.exe | |
| echo "=== Dependencies Check ===" | |
| ldd build/DomesdayDuplicator/DomesdayDuplicator.exe | grep -E "(swresample|avutil|mingw32)" || echo "Dependencies check" | |
| - name: Package Windows x86 | |
| shell: msys2 {0} | |
| working-directory: Linux-Application | |
| run: | | |
| mkdir -p package/DomesdayDuplicator-Windows-i686 | |
| cp build/DomesdayDuplicator/DomesdayDuplicator.exe package/DomesdayDuplicator-Windows-i686/ | |
| cp build/dddconv/dddconv.exe package/DomesdayDuplicator-Windows-i686/ | |
| cp build/dddutil/dddutil.exe package/DomesdayDuplicator-Windows-i686/ | |
| cp DOWNSAMPLING_README.md package/DomesdayDuplicator-Windows-i686/ | |
| cp ../README.md package/DomesdayDuplicator-Windows-i686/ | |
| # Copy 32-bit DLLs | |
| echo "Copying required 32-bit DLLs..." | |
| ldd build/DomesdayDuplicator/DomesdayDuplicator.exe | grep mingw32 | awk '{print $3}' | head -20 | while read dll; do | |
| [ -f "$dll" ] && cp "$dll" package/DomesdayDuplicator-Windows-i686/ || true | |
| done | |
| # Add Windows x86 specific info | |
| cat > package/DomesdayDuplicator-Windows-i686/WINDOWS_X86_INFO.txt << 'EOF' | |
| DomesdayDuplicator for Windows i686 (32-bit) | |
| ========================================== | |
| This build is specifically compiled for 32-bit Windows systems. | |
| Requirements: | |
| - Windows 7/8/10/11 (32-bit or 64-bit - this will run on both) | |
| - All required DLLs are included in this package | |
| Installation: | |
| 1. Extract this archive to a folder | |
| 2. Run DomesdayDuplicator.exe | |
| Note: This 32-bit build will work on both 32-bit and 64-bit Windows systems, | |
| but may have memory limitations compared to the 64-bit build. | |
| For optimal performance on 64-bit systems, use the x64 build instead. | |
| EOF | |
| tar -czf DomesdayDuplicator-Windows-i686.tar.gz -C package DomesdayDuplicator-Windows-i686 | |
| - name: Upload Windows x86 Artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: DomesdayDuplicator-Windows-i686 | |
| path: Linux-Application/DomesdayDuplicator-Windows-i686.tar.gz | |
| retention-days: 30 |