Skip to content

Add CLA

Add CLA #23

Workflow file for this run

# name: Build GDExtension
# on:
# workflow_call:
# push:
# pull_request:
# merge_group:
# jobs:
# build:
# strategy:
# fail-fast: false
# matrix:
# # A build is made for every possible combination of parameters
# # You can add or remove entries from the arrays of each parameter to customize which builds you want to run
# # See https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow
# target: [
# { platform: linux, arch: x86_64, os: ubuntu-22.04 },
# # { platform: linux, arch: aarch64, os: ubuntu-22.04 },
# { platform: windows, arch: x86_64, os: windows-latest },
# { platform: macos, arch: universal, os: macos-latest },
# # { platform: android, arch: arm64, os: ubuntu-22.04 },
# # { platform: android, arch: arm32, os: ubuntu-22.04 },
# # { platform: android, arch: x86_64, os: ubuntu-22.04 },
# # { platform: android, arch: x86_32, os: ubuntu-22.04 },
# # { platform: ios, arch: arm64, os: macos-latest },
# # { platform: web, arch: wasm32, os: ubuntu-22.04 },
# ]
# target-type: [template_release, template_debug]
# float-precision: [single, double]
# # include: # Also build a release version for these specific targets. Remove if you add template_release above.
# # - target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
# # target-type: template_release
# # float-precision: single
# # - target: { platform: linux, arch: x86_64, os: ubuntu-22.04 }
# # target-type: template_release
# # float-precision: double
# runs-on: ${{ matrix.target.os }}
# steps:
# # Clone this repository
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# # Lint
# #- name: Setup clang-format
# # shell: bash
# # run: |
# # python -m pip install clang-format
# #- name: Run clang-format
# # shell: bash
# # run: |
# # clang-format src/** --dry-run --Werror
# # Get the Kuzu Binaries
# - name: Download Kuzu Binaries
# shell: bash
# run: |
# case "${{ matrix.target.platform }}-${{ matrix.target.arch }}" in
# linux-x86_64)
# KUZU_URL="https://github.com/kuzudb/kuzu/releases/download/v0.10.0/libkuzu-linux-x86_64.tar.gz"
# ;;
# linux-aarch64)
# KUZU_URL="https://github.com/kuzudb/kuzu/releases/download/v0.10.0/libkuzu-linux-aarch64.tar.gz"
# ;;
# windows-x86_64)
# KUZU_URL="https://github.com/kuzudb/kuzu/releases/download/v0.10.0/libkuzu-windows-x86_64.zip"
# ;;
# macos-universal)
# KUZU_URL="https://github.com/kuzudb/kuzu/releases/download/v0.10.0/libkuzu-osx-universal.tar.gz"
# ;;
# android-armv8a)
# KUZU_URL="https://github.com/kuzudb/kuzu/releases/download/v0.10.0/libkuzu-android-armv8a.tar.gz"
# ;;
# *)
# echo "Unsupported platform: ${{ matrix.target.platform }}-${{ matrix.target.arch }}"
# exit 1
# ;;
# esac
# curl -L -o kuzu_binary.tar.gz "$KUZU_URL"
# - name: Extract Kuzu Binaries (Linux)
# if: ${{ matrix.target.platform == 'linux' }}
# shell: bash
# run: |
# tar -xvzf kuzu_binary.tar.gz -C ${{ github.workspace }}/bin/${{ matrix.target.platform }}/kuzu/
# # Rename only for Linux platforms
# mv ${{ github.workspace }}/bin/${{ matrix.target.platform }}/kuzu/libkuzu.so \
# ${{ github.workspace }}/bin/${{ matrix.target.platform }}/kuzu/libkuzu_${{ matrix.target.arch }}.so
# - name: Extract Kuzu Binaries (macOS)
# if: ${{ matrix.target.platform == 'macos' }}
# shell: bash
# run: |
# tar -xvzf kuzu_binary.tar.gz -C ${{ github.workspace }}/bin/${{ matrix.target.platform }}/kuzu/
# # No renaming needed for macOS
# - name: Extract Kuzu Binaries (Windows)
# if: ${{ matrix.target.platform == 'windows' }}
# shell: pwsh
# run: |
# Expand-Archive -Path kuzu_binary.tar.gz -DestinationPath "${{ github.workspace }}\bin\windows\kuzu\"
# - name: Verify Kuzu Binaries
# run: |
# ls -l ${{ github.workspace }}/bin/${{ matrix.target.platform }}/kuzu/
# # Setup dependencies
# - name: Setup godot-cpp
# uses: ./godot-cpp/.github/actions/setup-godot-cpp
# with:
# platform: ${{ matrix.target.platform }}
# em-version: 3.1.62
# # Build GDExtension (with caches)
# - name: Restore .scons_cache
# uses: ./godot-cpp/.github/actions/godot-cache-restore
# with:
# scons-cache: ${{ github.workspace }}/.scons-cache/
# cache-name: ${{ matrix.target.platform }}_${{ matrix.target.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}
# - name: Build GDExtension Release Build
# shell: sh
# env:
# SCONS_CACHE: ${{ github.workspace }}/.scons-cache/
# run: |
# scons target=${{ matrix.target-type }} \
# debug_symbols=${{ matrix.target-type == 'template_debug' && 'yes' || 'no' }} \
# platform=${{ matrix.target.platform }} \
# arch=${{ matrix.target.arch }} \
# precision=${{ matrix.float-precision }}
# - name: Save .scons_cache
# uses: ./godot-cpp/.github/actions/godot-cache-save
# with:
# scons-cache: ${{ github.workspace }}/.scons-cache/
# cache-name: ${{ matrix.target.platform }}_${{ matrix.target.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}
# # Clean up compilation files
# - name: Windows - Delete compilation files
# if: ${{ matrix.target.platform == 'windows' }}
# shell: pwsh
# run: |
# Remove-Item bin/* -Include *.exp,*.lib,*.pdb -Force
# # Upload the build
# - name: Upload Artifact
# uses: actions/upload-artifact@v4
# with:
# name: kuzugd-${{ matrix.target.platform }}-${{ matrix.target.arch }}-${{ matrix.float-precision }}-${{ matrix.target-type }}
# path: |
# ${{ github.workspace }}/bin/**
# # Merges all the build artifacts together into a single kuzugd artifact.
# # If you comment out this step, all the builds will be uploaded individually.
# merge:
# runs-on: ubuntu-22.04
# needs: build
# steps:
# - name: Merge Artifacts
# uses: actions/upload-artifact/merge@v4
# with:
# name: kuzugd
# pattern: kuzugd-*
# delete-merged: true