Fixed duplicate/multiply tray icon issue when... #125
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
| # Generated with Gemini Pro 3.1 | |
| name: Build | |
| on: | |
| push: | |
| branches: ["**"] | |
| pull_request: | |
| branches: ["**"] | |
| workflow_dispatch: # Allows you to run this workflow manually | |
| jobs: | |
| build: | |
| name: ${{ matrix.build_name }} (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-2022, windows-2025] | |
| config: [release, release-oldos, full-package] | |
| include: | |
| - config: release | |
| build_name: "Build Release Only" | |
| artifact_name: "BeatDrop-Release" | |
| - config: release-oldos | |
| build_name: "Build Release_OldOS Only" | |
| artifact_name: "BeatDrop-Release-OldOS" | |
| - config: full-package | |
| build_name: "Build Full Package" | |
| artifact_name: "BeatDrop-Full-Package" | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v6 | |
| with: | |
| lfs: true | |
| - name: Add MSBuild to PATH | |
| uses: microsoft/setup-msbuild@v3 | |
| - name: Install Legacy DirectX SDK | |
| shell: powershell | |
| run: | | |
| choco install directx-sdk -y | |
| echo "DXSDK_DIR=C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)" >> $env:GITHUB_ENV | |
| - name: Install x86 dependencies and build Release_x86 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| vcpkg integrate install | |
| vcpkg x-update-baseline | |
| vcpkg install --triplet x86-windows | |
| mkdir -p lib ns-eel2-shim | |
| triplet_root="vcpkg_installed/x86-windows" | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_eval.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_ns-eel2.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -name 'ns-eel.h' -type f -exec cp {} ns-eel2-shim/ \; | |
| cmd.exe //D //C 'msbuild BeatDrop.sln /p:Configuration=Release_x86 /p:Platform=Win32 /m' | |
| - name: Package Release_x86 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| mkdir -p package/x86 | |
| cp BeatDrop/BeatDrop_x86.exe package/x86/ | |
| cp BeatDrop/*.dll package/x86/ | |
| - name: Install x86 dependencies and build Release_OldOS_x86 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| vcpkg integrate install | |
| vcpkg x-update-baseline | |
| vcpkg install --triplet x86-windows | |
| mkdir -p lib ns-eel2-shim | |
| triplet_root="vcpkg_installed/x86-windows" | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_eval.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_ns-eel2.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -name 'ns-eel.h' -type f -exec cp {} ns-eel2-shim/ \; | |
| cmd.exe //D //C 'msbuild BeatDrop.sln /p:Configuration=Release_OldOS_x86 /p:Platform=Win32 /m' | |
| - name: Package Release_OldOS_x86 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| mkdir -p package/x86 | |
| cp BeatDrop/BeatDrop_OldOS_x86.exe package/x86/ | |
| cp BeatDrop/*.dll package/x86/ | |
| - name: Install x64 dependencies and build Release_x64 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| vcpkg install --triplet x64-windows | |
| mkdir -p lib ns-eel2-shim | |
| triplet_root="vcpkg_installed/x64-windows" | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_eval.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_ns-eel2.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -name 'ns-eel.h' -type f -exec cp {} ns-eel2-shim/ \; | |
| cmd.exe //D //C 'msbuild BeatDrop.sln /p:Configuration=Release_x64 /p:Platform=x64 /m' | |
| - name: Package Release_x64 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| mkdir -p package/x64 | |
| cp BeatDrop/BeatDrop_x64.exe package/x64/ | |
| cp BeatDrop/*.dll package/x64/ | |
| - name: Install x64 dependencies and build Release_OldOS_x64 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| vcpkg install --triplet x64-windows | |
| mkdir -p lib ns-eel2-shim | |
| triplet_root="vcpkg_installed/x64-windows" | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_eval.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -path '*/debug/*' -prune -o -name 'projectM_ns-eel2.lib' -type f -exec cp {} lib/ \; | |
| find "$triplet_root" -name 'ns-eel.h' -type f -exec cp {} ns-eel2-shim/ \; | |
| cmd.exe //D //C 'msbuild BeatDrop.sln /p:Configuration=Release_OldOS_x64 /p:Platform=x64 /m' | |
| - name: Package Release_OldOS_x64 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: bash | |
| run: | | |
| mkdir -p package/x64 | |
| cp BeatDrop/BeatDrop_OldOS_x64.exe package/x64/ | |
| cp BeatDrop/*.dll package/x64/ | |
| - name: Post-Build Packaging | |
| shell: bash | |
| run: | | |
| for arch in x86 x64; do | |
| if [ -d "package/$arch" ]; then | |
| cp -R BeatDrop/Redist "package/$arch/" | |
| cp BeatDrop/LICENSE.txt "package/$arch/" | |
| cp BeatDrop/dxwebsetup.exe "package/$arch/" | |
| cp -R resources/Milkdrop2 "package/$arch/BeatDrop Resources" | |
| cp resources/beatdrop.ini resources/beatdrop_img.ini resources/beatdrop_msg.ini resources/precache.txt "package/$arch/" | |
| fi | |
| done | |
| - name: Upload Build Artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ${{ matrix.artifact_name }}-${{ matrix.os }} | |
| path: package/ | |
| if-no-files-found: error | |
| compression-level: 0 |