Building addon/test_room #15
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: build_gde_gozen | |
run-name: Building addon/test_room | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'Addon version' | |
required: false | |
default: "4.0" | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Installing dependencies | |
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar ffmpeg | |
- name: Checkout submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Restore cached linux_debug | |
id: cache-linux-debug-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: linux_debug | |
- name: Build Linux debug | |
run: scons -j4 target=template_debug platform=linux arch=x86_64 use_system=yes dev_build=yes | |
- name: Save cache linux_debug | |
id: cache-linux-debug-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-linux-debug-restore.outputs.cache-primary-key }} | |
- name: Restore cached linux_release | |
id: cache-linux-release-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: linux_release_addon | |
- name: Build Linux release | |
run: scons -j4 target=template_release platform=linux arch=x86_64 use_system=yes | |
- name: Save cache linux_release | |
id: cache-linux-release-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-linux-release-restore.outputs.cache-primary-key }} | |
- name: Uploading binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_linux_bin_v${{ inputs.version }} | |
path: bin/ | |
retention-days: 1 | |
build-linux-full: | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Installing dependencies | |
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar ffmpeg | |
- name: Checkout submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Restore cached linux_full_debug | |
id: cache-linux-full-debug-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: linux_full_debug_addon | |
- name: Build Linux full debug | |
run: scons -j4 target=template_debug platform=linux arch=x86_64 use_system=no dev_build=yes | |
- name: Save cache linux_full_debug | |
id: cache-linux-full-debug-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-linux-full-debug-restore.outputs.cache-primary-key }} | |
- name: Restore cached linux_full_release | |
id: cache-linux-full-release-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: linux_full_release_addon | |
- name: Build Linux full release | |
run: scons -j4 target=template_release platform=linux arch=x86_64 use_system=no recompile_ffmpeg=no | |
- name: Save cache linux_full_release | |
id: cache-linux-full-release-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-linux-full-release-restore.outputs.cache-primary-key }} | |
- name: Uploading binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_linux_full_bin_v${{ inputs.version }} | |
path: bin/ | |
retention-days: 1 | |
build-windows: | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Installing dependencies | |
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar mingw-w64 ffmpeg | |
- name: Checkout submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Restore cached windows_debug | |
id: cache-windows-debug-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: windows_debug_addon | |
- name: Build Windows debug | |
run: scons -j4 target=template_debug platform=windows arch=x86_64 dev_build=yes recompile_ffmpeg=yes | |
- name: Save cache windows_debug | |
id: cache-windows-debug-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-windows-debug-restore.outputs.cache-primary-key }} | |
- name: Restore cached windows_release | |
id: cache-windows-release-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: windows_release_addon | |
- name: Build Windows release | |
run: scons -j4 target=template_release platform=windows arch=x86_64 recompile_ffmpeg=no | |
- name: Save cache windows_release | |
id: cache-windows-release-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-windows-release-restore.outputs.cache-primary-key }} | |
- name: Uploading binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_windows_bin_v${{ inputs.version }} | |
path: bin/ | |
retention-days: 1 | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Installing dependencies | |
run: | | |
brew update | |
brew install yasm scons diffutils make unzip ffmpeg | |
- name: Restore cached macos_debug | |
id: cache-macos-debug-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: macos_debug | |
- name: Build MacOS debug | |
run: scons -j4 target=template_debug platform=macos arch=arm64 dev_build=yes recompile_ffmpeg=yes | |
- name: Save cache macos_debug | |
id: cache-macos-debug-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-macos-debug-restore.outputs.cache-primary-key }} | |
- name: Restore cached macos_release | |
id: cache-macos-release-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .scons-cache/ | |
key: macos_release | |
- name: Build MacOS release | |
run: scons -j4 target=template_release platform=macos arch=arm64 recompile_ffmpeg=no | |
- name: Save cache macos_release | |
id: cache-macos-release-save | |
uses: actions/cache/save@v4 | |
with: | |
path: .scons-cache/ | |
key: ${{ steps.cache-macos-release-restore.outputs.cache-primary-key }} | |
- name: Correct MacOS Binary paths | |
run: | | |
python macos_rpath_fix.py | |
otool -L bin/macos/debug/libgozen.macos.template_debug.dev.arm64.dylib | |
otool -L bin/macos/release/libgozen.macos.template_release.arm64.dylib | |
- name: Uploading binaries | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_macos_bin_v${{ inputs.version }} | |
path: bin/ | |
retention-days: 1 | |
build-addon: | |
needs: [build-linux, build-linux-full, build-windows, build-macos] | |
runs-on: ubuntu-latest | |
container: | |
image: archlinux:latest | |
steps: | |
- name: Installing dependencies | |
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar ffmpeg | |
- name: Checkout submodules | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Prepare linux artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: bin/ | |
name: gde_gozen_linux_bin_v${{ inputs.version }} | |
- name: Prepare linux-full artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: bin/ | |
name: gde_gozen_linux_full_bin_v${{ inputs.version }} | |
- name: Prepare windows artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: bin/ | |
name: gde_gozen_windows_bin_v${{ inputs.version }} | |
- name: Prepare macos artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: bin/ | |
name: gde_gozen_macos_bin_v${{ inputs.version }} | |
- name: Copying binaries + license | |
run: | | |
cp -r bin test_room/addons/gde_gozen/ | |
cp LICENSE test_room/addons/gde_gozen/ | |
- name: Updating version number | |
run: sed -i 's/^version="[^"]*"/version="${{ inputs.version }}"/' test_room/addons/gde_gozen/plugin.cfg | |
- name: Upload addon | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_v${{ inputs.version }} | |
path: test_room/addons/ | |
retention-days: 1 | |
- name: Upload test_room | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gde_gozen_test_room_v${{ inputs.version }} | |
path: test_room/ | |
retention-days: 1 |