Skip to content

Fixed duplicate/multiply tray icon issue when... #125

Fixed duplicate/multiply tray icon issue when...

Fixed duplicate/multiply tray icon issue when... #125

Workflow file for this run

# 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