Skip to content

Printable fx in InstrumentView #189

Printable fx in InstrumentView

Printable fx in InstrumentView #189

Workflow file for this run

name: Check build viability
on: [pull_request]
jobs:
clang-format:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Fetch all branches
run: git fetch
- name: Check formatting
run: |
git fetch origin master:master
CHANGED_FILES=$(git diff --name-only master --diff-filter=ACM | grep -iE '\.(cpp|h|c|hpp)$')
if [ -z "$CHANGED_FILES" ]; then
echo "No C/C++ files changed."
exit 0
fi
NEEDS_FORMATTING=0
# Run clang-format on the changed lines of each staged file
for FILE in $CHANGED_FILES; do
# Get the changed lines in the file
CHANGED_LINES=$(git diff -U0 master -- $FILE | grep -E '^@@' | awk '{print $3}' | cut -d',' -f1)
# Format each changed line in the file
for LINE in $CHANGED_LINES; do
LINE_START=$(echo $LINE | cut -d'+' -f2)
if [ -z "$LINE_START" ]; then
continue
fi
clang-format -i --lines=$LINE_START:$LINE_START $FILE
done
if ! git diff --quiet $FILE; then
NEEDS_FORMATTING=1
fi
done
if [ $NEEDS_FORMATTING -eq 1 ]; then
git diff
echo "Some files need formatting. Please review the diff."
echo "Tip: install pre-commit from repo root:"
echo "cp pre-commit .git/hooks/"
exit 1
else
echo "All files are properly formatted."
fi
win32:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install build deps
run: choco install -y directx-sdk zip --no-progress --yes
shell: powershell
- name: Download and Extract VCE9 release
run: |
$url = "https://github.com/djdiskmachine/VCE9/releases/download/v1.0.0/Microsoft.Visual.Studio.9.0.zip"
$destination = "C:\Program Files (x86)\"
New-Item -ItemType Directory -Force -Path $destination | Out-Null
Invoke-WebRequest -Uri $url -OutFile "$env:TEMP\VCE9.zip"
Expand-Archive -Path "$env:TEMP\VCE9.zip" -DestinationPath $destination -Force
shell: pwsh
- name: Install Visual Studio 2008 Express
run: |
Invoke-WebRequest -Uri "http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso" -OutFile "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso"
$mountResult = Mount-DiskImage -ImagePath "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso" -PassThru
$driveLetter = ($mountResult | Get-Volume).DriveLetter
Write-Host "ISO mounted to drive letter $driveLetter"
$driveLetter = (Get-DiskImage -ImagePath "$env:GITHUB_WORKSPACE\VS2008ExpressENUX1397868.iso" | Get-Volume).DriveLetter
Start-Process -FilePath "${driveLetter}:\VCExpress\setup.exe" -ArgumentList '/q', '/norestart' -Wait
shell: pwsh
- name: Build Solution
working-directory: projects
run: |
& "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
& "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "lgpt.sln" "Release|Win32"
shell: pwsh
- name: Package build
shell: bash
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
deb:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install required libraries
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y make pkgconf gcc-multilib g++-multilib libsdl1.2-dev:i386 libasound2-plugins:i386 libjack-dev:i386 python3-pillow
- name: Build DEB
working-directory: projects
run: make PLATFORM=DEB
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
x86:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install required libraries
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y make pkgconf gcc-multilib g++-multilib libsdl2-dev:i386 libasound2-plugins:i386 libjack-dev:i386 python3-pillow
- name: Build X86
working-directory: projects
run: make PLATFORM=X86
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
psp:
runs-on: ubuntu-latest
env:
PSPDEV: ${{ github.workspace }}/pspdev
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install required libraries
run: |
sudo apt update
sudo apt install -y build-essential cmake pkgconf libusb-0.1-4 libgpgme11 libarchive-tools fakeroot python3-pillow
- name: Set up PSP dev kit
run: |
echo "$PSPDEV/bin" >> $GITHUB_PATH
git clone https://github.com/djdiskmachine/pspdev
- name: Build PSP
working-directory: projects
run: make PLATFORM=PSP
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
bittboy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install Bittboy toolchain
run: |
sudo apt update && sudo apt install -y python3-pillow
wget -O /tmp/arm-buildroot-linux-musleabi_sdk-buildroot.tar.xz https://github.com/djdiskmachine/MiyooMini-toolchain/releases/download/toolchain/miyoo-toolchain-v2.0.0-arm-buildroot-linux-musleabi_sdk-buildroot.tar.gz
mkdir /opt/arm-buildroot-linux-musleabi_sdk-buildroot
tar -xvf /tmp/arm-buildroot-linux-musleabi_sdk-buildroot.tar.xz -C /opt/arm-buildroot-linux-musleabi_sdk-buildroot --strip-components=1
- name: Build Bittboy
working-directory: projects
run: make PLATFORM=BITTBOY
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
garlic:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Clone and build LGPT
run: |
ln -s /home/runner/work/LittleGPTracker/LittleGPTracker workspace
docker run -d --name rg35xx-container -v "$(pwd)/workspace:/root/workspace" aveferrum/rg35xx-toolchain sleep infinity
docker exec rg35xx-container bash -c "
apt update && apt install -y python3 python3-pillow
cd projects
make PLATFORM=GARLIC
"
sudo chmod -R 777 ./workspace/projects
sudo chown -R root:root ./workspace/projects
- name: Package build
working-directory: ./workspace/projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
garlicplus:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Garlic Plus toolchain
run: |
sudo apt update && sudo apt install -y python3-pillow
wget -O /tmp/rg35xxplus-toolchain.tar.xz https://github.com/simotek/union-rg35xxplus-toolchain/releases/download/20240830/rg35xxplus-toolchain.tar.xz
mkdir /opt/rg35xxplus-toolchain
tar -xvf /tmp/rg35xxplus-toolchain.tar.xz -C /opt/rg35xxplus-toolchain --strip-components=1
- name: Build Garlic Plus
working-directory: projects
run: make PLATFORM=GARLICPLUS
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
rg35xxplus:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install rg35xx Stock Toolchain
run: |
sudo apt update && sudo apt install -y python3-pillow
wget -O /tmp/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz https://github.com/simotek/rg35xx-plus-aarch64-SDL2-SDK/releases/download/0.1.0/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz
mkdir /opt/rg35xx-plus-aarch64-SDL2-SDK-0.1.0
tar -xvf /tmp/rg35xx-plus-aarch64-SDL2-SDK-0.1.0.tar.xz -C /opt/rg35xx-plus-aarch64-SDL2-SDK-0.1.0 --strip-components=1
- name: Build rg35xx Stock
working-directory: projects
run: make PLATFORM=RG35XXPLUS
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
miyoo:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install Miyoo Mini toolchain
run: |
sudo apt update && sudo apt install -y python3-pillow
wget -O /tmp/miyoomini-toolchain.tar.xz https://github.com/djdiskmachine/miyoomini-toolchain-buildroot/releases/download/1.0.0/miyoomini-toolchain.tar.xz
mkdir /opt/miyoomini-toolchain
tar -xvf /tmp/miyoomini-toolchain.tar.xz -C /opt/miyoomini-toolchain --strip-components=1
- name: Build Miyoo Mini
working-directory: projects
run: |
make PLATFORM=MIYOO
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
x64:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install required libraries
run: |
sudo apt update
sudo apt install -y make pkgconf libsdl2-dev libasound2-plugins libjack-dev python3-pillow
- name: Build X64
working-directory: projects
run: |
make PLATFORM=X64
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error
macos:
runs-on: macos-13
steps:
- name: Checkout repository
uses: actions/checkout@v4.1.7
- name: Install required libraries
run: |
wget https://www.libsdl.org/release/SDL2-2.0.14.dmg
hdiutil attach SDL2-2.0.14.dmg
sudo cp -R /Volumes/SDL2/SDL2.framework /Library/Frameworks/
- name: Build Xcode project
run: |
xcodebuild ONLY_ACTIVE_ARCH=NO -project projects/lgpt64.xcodeproj -scheme LittleGPTracker -configuration Release build
cp -R bin/LittleGPTracker.app projects/
- name: Package build
working-directory: projects
run: |
curl -L -o lgpt-resources.zip https://github.com/djdiskmachine/lgpt-resources/archive/refs/tags/1.1.zip
unzip lgpt-resources.zip
mv lgpt-resources-1.1/*/ ./resources/packaging
rm -rf lgpt-resources*
./resources/packaging/lgpt_package.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: LGPT-${{ github.job }}-${{ github.sha }}.zip
path: projects/*.zip
if-no-files-found: error