Multi platform build #12
This file contains 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
name: Multi platform build | |
on: | |
workflow_dispatch: | |
jobs: | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- name: Install build deps | |
run: | | |
python -m pip install --upgrade pip | |
pip install Pillow | |
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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload win release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-deb: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-x86: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-x64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-psp: | |
runs-on: ubuntu-latest | |
env: | |
PSPDEV: ${{ github.workspace }}/pspdev | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-miyoo: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-bittboy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./workspace/projects/*.zip | |
build-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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
build-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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: ./projects/*.zip | |
macos: | |
runs-on: macos-13 | |
steps: | |
- name: Checkout repository | |
uses: actions/[email protected] | |
- 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: Extract Git tag name | |
id: extract_tag | |
run: echo "::set-output name=tag_name::${GITHUB_REF#refs/tags/}" | |
env: | |
GITHUB_REF: ${{ github.ref }} | |
- name: Upload build release | |
uses: softprops/action-gh-release@v2 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
tag_name: ${{ steps.extract_tag.outputs.tag_name }} | |
files: projects/*.zip |