name: Build Eden Emulator on: push: branches: - dev workflow_dispatch: jobs: build-windows: runs-on: windows-amd64 steps: - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: Install dependencies run: | # Assuming chocolatey or winget is available, or just use what's on the runner. # Many runners have CMake and Ninja pre-installed. choco install ninja cmake -y --no-progress - name: Configure CMake shell: cmd run: | cmake -S . -B build -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release -DYUZU_TESTS=OFF -DENABLE_QT_TRANSLATION=ON -DYUZU_USE_BUNDLED_OPENSSL=ON -DYUZU_USE_BUNDLED_FFMPEG=ON -DYUZU_USE_BUNDLED_SDL2=ON -DYUZU_USE_BUNDLED_QT=ON -DYUZU_USE_CPM=ON - name: Build Eden shell: cmd run: | cmake --build build --config Release --parallel - name: Prepare artifacts shell: bash run: | mkdir -p artifacts # Copy the built executable if [ -f build/bin/eden.exe ]; then # VS generator puts it in Release/ or similar cp build/bin/Release/eden.exe artifacts/ || cp build/bin/eden.exe artifacts/ fi # Copy any additional runtime files (DLLs) # With bundled dependencies, they usually get copied to bin/ if [ -d build/bin ]; then find build/bin -name "*.dll" -exec cp {} artifacts/ \; fi # Create a version file echo "Build Date: $(date)" > artifacts/build_info.txt echo "Commit: ${{ github.sha }}" >> artifacts/build_info.txt echo "Branch: ${{ github.ref_name }}" >> artifacts/build_info.txt - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: eden-windows-${{ github.sha }} path: artifacts/ retention-days: 30 - name: Upload executable only uses: actions/upload-artifact@v4 with: name: eden-windows-exe path: artifacts/eden.exe retention-days: 30 if: success() && hashFiles('artifacts/eden.exe') != ''