Skip to content

Added Transitions and Hardcut Modes tray options #106

Added Transitions and Hardcut Modes tray options

Added Transitions and Hardcut Modes tray options #106

Workflow file for this run

# 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