Added Transitions and Hardcut Modes tray options #106
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: Alternate 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: Cache vcpkg binary archives | |
| uses: actions/cache@v6 | |
| with: | |
| path: C:\Users\runneradmin\AppData\Local\vcpkg\archives | |
| key: vcpkg-archives-${{ runner.os }}-${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} | |
| restore-keys: | | |
| vcpkg-archives-${{ runner.os }}- | |
| - 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: Clone projectM-eval | |
| shell: bash | |
| run: git clone https://github.com/projectM-visualizer/projectm-eval.git | |
| - name: Build x86 projectM-eval and dependencies | |
| shell: bash | |
| run: | | |
| vcpkg integrate install | |
| vcpkg x-update-baseline | |
| vcpkg install --triplet x86-windows | |
| cmake -S projectm-eval -B projectm-eval-build-x86 -A Win32 -DBUILD_NS_EEL_SHIM=ON | |
| cmake --build projectm-eval-build-x86 --config Release --parallel | |
| cmake --install projectm-eval-build-x86 --prefix projectm-eval-install-x86 | |
| mkdir -p lib ns-eel2-shim | |
| cp projectm-eval-install-x86/lib/projectM_eval.lib lib/ | |
| cp projectm-eval-install-x86/lib/projectM_ns-eel2.lib lib/ | |
| cp projectm-eval-install-x86/include/projectm-eval/ns-eel2/ns-eel.h ns-eel2-shim/ | |
| - name: Build Release_x86 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: cmd | |
| run: 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: Build Release_OldOS_x86 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: cmd | |
| run: 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: Build x64 projectM-eval and dependencies | |
| shell: bash | |
| run: | | |
| vcpkg install --triplet x64-windows | |
| cmake -S projectm-eval -B projectm-eval-build-x64 -A x64 -DBUILD_NS_EEL_SHIM=ON | |
| cmake --build projectm-eval-build-x64 --config Release --parallel | |
| cmake --install projectm-eval-build-x64 --prefix projectm-eval-install-x64 | |
| mkdir -p lib ns-eel2-shim | |
| cp projectm-eval-install-x64/lib/projectM_eval.lib lib/ | |
| cp projectm-eval-install-x64/lib/projectM_ns-eel2.lib lib/ | |
| cp projectm-eval-install-x64/include/projectm-eval/ns-eel2/ns-eel.h ns-eel2-shim/ | |
| - name: Build Release_x64 | |
| if: matrix.config == 'release' || matrix.config == 'full-package' | |
| shell: cmd | |
| run: 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: Build Release_OldOS_x64 | |
| if: matrix.config == 'release-oldos' || matrix.config == 'full-package' | |
| shell: cmd | |
| run: 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 |