RetroDECK/.github/workflows/build-godot.yml
2024-08-23 18:36:25 +01:00

99 lines
4.7 KiB
YAML

name: GoDot Configurator Build Debug
run-name: Build Godot Configurator(DEBUG) for RetroDECK
on:
workflow_dispatch:
inputs:
job_target:
description: 'Select the platform'
required: true
default: 'linux'
type: choice
options:
- linux
- windows
- mac
- all
env:
GODOT_VERSION: 4.3
GODOT_PROJECT_LOCATION: tools/configurator/project.godot
EXPORT_FOLDER_LINUX: bin/Linux
EXPORT_FOLDER_WINDOWS: bin/Windows
EXPORT_FOLDER_MAC: bin/macOS
APPLICATION_NAME: godot_configurator
jobs:
linux-build:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Set up variable
run: |
echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
echo "MAIN_FOLDER=$(pwd)" >> $GITHUB_ENV
- name: Installing dependencies
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar mingw-w64
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Prepare Godot
run: |
wget -q -O godot_linux.zip https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip
unzip godot_linux.zip
wget -q -O godot_export_templates.tpz https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz
mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
unzip godot_export_templates.tpz -d ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
mv ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/
sed -i 's/config\/version=\"[^"]\*"/config\/version=\"${{ env.DATE }}-debug\"/' ${{ env.GODOT_PROJECT_LOCATION }}
# DEBUG BUILDS
- name: Building debug Linux
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_LINUX }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "Linux/X11 64-bit" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME}}.x86_64
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.sh
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.x86_64
# TAR to keep permissions set above
- name: Tar File
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
run: tar cvf ${{ env.APPLICATION_NAME}}_linux_debug_${{ env.DATE}}.tar ${{ env.EXPORT_FOLDER_LINUX}}
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
path: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
- name: Building debug Windows
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_WINDOWS }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "windows" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_WINDOWS }}/${{ env.APPLICATION_NAME}}.exe
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_windows_debug_${{ env.DATE }}
path: ${{ env.EXPORT_FOLDER_WINDOWS }}/
- name: Building debug macOS
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_MAC }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "macOS" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_MAC}}/${{ env.APPLICATION_NAME}}.exe
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_mac_debug_${{ env.DATE }}
path: ${{ env.EXPORT_FOLDER_MAC }}/