Skip to content

fix build.yml

fix build.yml #34

Workflow file for this run

name: 🛠️ Builds
on:
workflow_dispatch:
push:
branches:
- main
jobs:
build:
runs-on: ${{ matrix.runner }}
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- identifier: linux-debug
name: 🐧 Linux Debug
runner: ubuntu-20.04
target: template_debug
dev_build: yes
platform: linux
arch: x86_64
- identifier: linux-release
name: 🐧Linux Release
runner: ubuntu-20.04
target: template_release
dev_build: no
platform: linux
arch: x86_64
- identifier: macos-debug
name: 🍎 macOS (universal) Debug
runner: macos-latest
target: template_debug
dev_build: yes
platform: macos
arch: universal
- identifier: macos-release
name: 🍎 macOS (universal) Release
runner: macos-latest
target: template_release
dev_build: no
platform: macos
arch: universal
- identifier: windows-debug
name: 🏁 Windows Debug
runner: windows-latest
target: template_debug
dev_build: yes
platform: windows
arch: x86_64
- identifier: windows-release
name: 🏁 Windows Release
runner: windows-latest
target: template_release
dev_build: no
platform: windows
arch: x86_64
- identifier: android-arm64-debug
name: 🤖 Android arm64 Debug
runner: ubuntu-20.04
target: template_debug
dev_build: yes
platform: android
arch: arm64
- identifier: android-arm64-release
name: 🤖 Android arm64 Release
runner: ubuntu-20.04
target: template_release
dev_build: no
platform: android
arch: arm64
- identifier: android-x86_64-debug
name: 🤖 Android x86_64 Debug
runner: ubuntu-20.04
target: template_debug
dev_build: yes
platform: android
arch: x86_64
- identifier: android-x86_64-release
name: 🤖 Android x86_64 Release
runner: ubuntu-20.04
target: template_release
dev_build: no
platform: android
arch: x86_64
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Set up SCons
shell: bash
run: |
python -c "import sys; print(sys.version)"
python -m pip install scons
scons --version
- name: Checkout project
uses: actions/checkout@v4
with:
submodules: false
- name: Checkout godot-cpp
uses: actions/checkout@v4
with:
repository: godotengine/godot-cpp
path: godot-cpp
submodules: recursive
ref: "54136ee8357c5140a3775c54f08db5f7deda2058"
- name: Checkout private EOS SDK mirror repo
uses: actions/checkout@v4
with:
token: "${{secrets.EOS_SDK_MIRROR_PAT}}"
repository: 3ddelano/eos-sdk-mirror
path: thirdparty/eos-sdk
ref: "6454f08fa83748bb568da7e056d20af5c2021f32"
- name: (Windows) Install mingw64
if: ${{ matrix.platform == 'windows' }}
# change to egor-tensin/setup-mingw@v2 once pr #16 is merged
uses: e-t-l/setup-mingw@patch-1
- name: (Linux) Install dependencies
if: ${{ matrix.platform == 'linux' }}
run: |
sudo apt-get update -qq
sudo apt-get install -qqq build-essential pkg-config
- name: (Android) Install dependencies
if: ${{ matrix.platform == 'android' }}
uses: nttld/setup-ndk@v1
with:
ndk-version: r23c
link-to-sdk: true
- name: Setup build cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/.scons-cache/
key: ${{ matrix.identifier }}
restore-keys: |
${{ matrix.identifier }}
continue-on-error: true
- name: Compile extension
shell: sh
env:
SCONS_CACHE: ${{ github.workspace }}/.scons-cache/
SCONS_CACHE_LIMIT: 7168
run: |
scons target='${{ matrix.target }}' platform='${{ matrix.platform }}' arch='${{ matrix.arch }}' dev_build='${{ matrix.dev_build }}'
- name: Copy extra files to addon folder
shell: sh
run: |
cp -n '${{ github.workspace }}/README.md' '${{ github.workspace }}/LICENSE.md' '${{ github.workspace }}/sample/addons/epic-online-services-godot/'
- name: Create artifact folder
shell: sh
run: |
mkdir -p '${{ github.workspace }}/artifact-${{ matrix.identifier }}/${{ github.event.repository.name }}/'
- name: Copy addons folder to artifact folder
shell: sh
run: |
cp -n -r '${{ github.workspace }}/sample/addons' '${{ github.workspace }}/artifact-${{ matrix.identifier }}/${{ github.event.repository.name }}/'
- name: (Windows) Delete compilation files
if: ${{ matrix.platform == 'windows' }}
run: |
Remove-Item ${{ github.workspace }}/artifact-${{ matrix.identifier }}/${{ github.event.repository.name }}/addons/epic-online-services-godot/bin/windows/* -Include *.exp,*.lib,*.ilk -Force
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }}-${{ matrix.identifier }}-${{ github.sha }}
path: |
${{ github.workspace }}/artifact-${{ matrix.identifier }}/
retention-days: 14
merge:
runs-on: ubuntu-latest
needs: build
strategy:
fail-fast: false
matrix:
include:
- identifier: linux-x86_64
name: 🐧 Linux
matchpattern: linux
- identifier: macos-universal
name: 🍎 macOS (universal)
matchpattern: macos
- identifier: windows-x86_64
name: 🏁 Windows
matchpattern: windows
- identifier: android-arm64
name: 🤖 Android arm64
matchpattern: android-arm64
- identifier: android-x86_64
name: 🤖 Android x86_64
matchpattern: android-x86_64
steps:
- name: Merge artifacts for platform
uses: actions/upload-artifact/merge@v4
with:
name: ${{ github.event.repository.name }}-${{ matrix.identifier }}-${{ github.sha }}
pattern: ${{ github.event.repository.name }}-${{ matrix.matchpattern }}*
- name: Merge artifacts into single
uses: actions/upload-artifact/merge@v4
with:
name: ${{ github.event.repository.name }}-all-${{ github.sha }}
pattern: ${{ github.event.repository.name }}-*