Skip to content

[godot] Fix GH workflow #2

[godot] Fix GH workflow

[godot] Fix GH workflow #2

name: Build spine-godot GDExtension (Godot 4.x)
on:
workflow_call:
inputs:
godot_tag:
required: true
type: string
default: "Godot tag not specified!"
godot_version:
required: true
type: string
default: "Godot version not specified!"
dev:
required: true
type: boolean
default: false
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
GODOT_TAG: ${{ inputs.godot_tag }}
GODOT_VERSION: ${{ inputs.godot_version }}
DEV_BUILD: ${{ inputs.dev }}
jobs:
build-windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Build GDExtension
shell: bash
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV_BUILD
./build-extension.sh windows
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-windows-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/windows/*.dll
build-linux-x86_64:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV_BUILD
./build-extension.sh linux
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-linux-x86_64-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/linux/*.so
build-linux-arm64:
runs-on: ubuntu-20.04

Check failure on line 79 in .github/workflows/spine-godot-extension-v4.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/spine-godot-extension-v4.yml

Invalid workflow file

You have an error in your yaml syntax on line 79
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential scons pkg-config gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV
SCONS_CACHE=.scons-cache/ scons -j4 platform=linux target=template_debug arch=arm64 use_llvm=no use_lld=no CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-linux-arm64-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/linux/*.so
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV_BUILD
./build-extension.sh macos
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-macos-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/macos/macos.framework/*
build-ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV_BUILD
./build-extension.sh ios
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-ios-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/ios/*.xcframework/**/*
build-android:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Make apt sources.list use the default Ubuntu repositories
run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f spine-godot/build/sources.lst /etc/apt/sources.list
sudo apt-get update
- name: Set up Java 17
uses: actions/setup-java@v4
with:
java-version: 17
- name: Setup Android SDK & NDK
uses: android-actions/setup-android@v2
- name: Install NDK
run: |
yes | sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --licenses
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;23.2.8568313"
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/23.2.8568313 ./build-extension.sh android
ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/23.2.8568313 ./build-extension.sh android x86_64
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-android-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/android/*.so
build-web:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Emscripten latest
uses: mymindstorm/setup-emsdk@v11
with:
version: 3.1.26
- name: Setup python and scons
uses: ./.github/actions/setup-godot-deps-4
- name: Build GDExtension
run: |
cd spine-godot/build
./setup-extension.sh $GODOT_TAG $DEV_BUILD
./build-extension.sh web
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: gdextension-web-${{ env.GODOT_TAG }}
path: spine-godot/example-v4-extension/bin/web/*.wasm
upload-to-s3:
needs: [build-windows, build-linux-x86_64, build-linux-arm64, build-macos, build-ios, build-android, build-web]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Download windows artifact
uses: actions/download-artifact@v4
with:
name: gdextension-windows-${{ env.GODOT_TAG }}
path: artifacts/gdextension-windows-${{ env.GODOT_TAG }}
- name: Download linux-x86_64 artifact
uses: actions/download-artifact@v4
with:
name: gdextension-linux-x86_64-${{ env.GODOT_TAG }}
path: artifacts/gdextension-linux-x86_64-${{ env.GODOT_TAG }}
- name: Download linux-arm64 artifact
uses: actions/download-artifact@v4
with:
name: gdextension-linux-arm64-${{ env.GODOT_TAG }}
path: artifacts/gdextension-linux-arm64-${{ env.GODOT_TAG }}
- name: Download macos artifact
uses: actions/download-artifact@v4
with:
name: gdextension-macos-${{ env.GODOT_TAG }}
path: artifacts/gdextension-macos-${{ env.GODOT_TAG }}
- name: Download ios artifact
uses: actions/download-artifact@v4
with:
name: gdextension-ios-${{ env.GODOT_TAG }}
path: artifacts/gdextension-ios-${{ env.GODOT_TAG }}
- name: Download android artifact
uses: actions/download-artifact@v4
with:
name: gdextension-android-${{ env.GODOT_TAG }}
path: artifacts/gdextension-android-${{ env.GODOT_TAG }}
- name: Download web artifact
uses: actions/download-artifact@v4
with:
name: gdextension-web-${{ env.GODOT_TAG }}
path: artifacts/gdextension-web-${{ env.GODOT_TAG }}
- name: Package and upload artifacts
shell: bash
if: env.AWS_ACCESS_KEY_ID != null
run: |
BRANCH=${GITHUB_REF#refs/heads/}
echo "branch: $BRANCH"
cd artifacts
# Ensure gdextension file is in root
cp ../spine-godot/spine_godot_extension.gdextension ./
# Create directories matching the expected structure
mkdir -p bin/{windows,linux,macos/macos.framework,ios,android,web}
# Move artifacts to their correct locations
mv gdextension-windows-$GODOT_TAG/* bin/windows/
mv gdextension-linux-x86_64-$GODOT_TAG/* bin/linux/
mv gdextension-linux-arm64-$GODOT_TAG/* bin/linux/
mv gdextension-macos-$GODOT_TAG/* bin/macos/macos.framework/
mv gdextension-ios-$GODOT_TAG/* bin/ios/
mv gdextension-android-$GODOT_TAG/* bin/android/
mv gdextension-web-$GODOT_TAG/* bin/web/
# Create the final zip with branch and tag
zip -r ../spine-godot-extension-$BRANCH-$GODOT_TAG.zip spine_godot_extension.gdextension bin/
cd ..
aws s3 cp spine-godot-extension-$BRANCH-$GODOT_TAG.zip s3://spine-godot/$BRANCH/$GODOT_TAG/