From 1e31d26372a1d1ca8af628a383f73ee03701d42b Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Mon, 9 Dec 2024 21:00:33 +0100 Subject: [PATCH] GitHub Workflow: Use new setup-godot-cpp github action from godot-cpp submodule. --- .github/actions/build/action.yml | 114 ------------------------------- .github/workflows/builds.yml | 23 +++++-- godot-cpp | 2 +- 3 files changed, 17 insertions(+), 122 deletions(-) delete mode 100644 .github/actions/build/action.yml diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml deleted file mode 100644 index 2294d2d..0000000 --- a/.github/actions/build/action.yml +++ /dev/null @@ -1,114 +0,0 @@ -name: GDExtension Build -description: Build GDExtension - -inputs: - platform: - required: true - description: Target platform. - arch: - required: true - description: Target architecture. - float-precision: - default: 'single' - description: Float precision (single or double). - build-target-type: - default: 'template_debug' - description: Build type (template_debug or template_release). - scons-cache: - default: '.scons-cache/' - description: Scons cache folder name, relative to each scons directory. Must not contain relative path signifiers (. or ..). Must be a transparent path part (empty or 'path/to/directory/', ending in a slash). - em_version: - default: 3.1.62 - description: Emscripten version. - em-cache-directory: - default: emsdk-cache - description: Emscripten cache directory. - gdextension-directory: - default: '' - description: Location of the gdextension project within the repository. Must not contain relative path signifiers (. or ..). Must be a transparent path part (empty or 'path/to/directory/', ending in a slash). - -runs: - using: composite - steps: -# Android only - - name: Android - Set up Java 17 - uses: actions/setup-java@v4 - if: ${{ inputs.platform == 'android' }} - with: - distribution: temurin - java-version: 17 - - - name: Android - Remove existing Android SDK, and set up ENV vars - if: ${{ inputs.platform == 'android' }} - shell: sh - run: | - sudo rm -r /usr/local/lib/android/sdk/** - export ANDROID_HOME=/usr/local/lib/android/sdk - export ANDROID_SDK_ROOT=$ANDROID_HOME - export ANDROID_NDK_VERSION=23.2.8568313 - export ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk/${ANDROID_NDK_VERSION} - echo "ANDROID_HOME=$ANDROID_HOME" >> "$GITHUB_ENV" - echo "ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV" - echo "ANDROID_NDK_VERSION=$ANDROID_NDK_VERSION" >> "$GITHUB_ENV" - echo "ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT" >> "$GITHUB_ENV" - - - name: Android - Set up Android SDK - if: ${{ inputs.platform == 'android' }} - uses: android-actions/setup-android@v3 - with: - packages: "ndk;${{ env.ANDROID_NDK_VERSION }} cmdline-tools;latest build-tools;34.0.0 platforms;android-34 cmake;3.22.1" -# Linux only - - name: Linux - dependencies - if: ${{ inputs.platform == 'linux' }} - shell: sh - run: | - sudo apt-get update -qq - sudo apt-get install -qqq build-essential pkg-config -# Web only - - name: Web - Set up Emscripten latest - if: ${{ inputs.platform == 'web' }} - uses: mymindstorm/setup-emsdk@v14 - with: - version: ${{ inputs.em_version }} - actions-cache-folder: ${{ inputs.em-cache-directory }}.${{ inputs.float-precision }}.${{ inputs.build-target-type }} - - name: Web - Verify Emscripten setup - if: ${{ inputs.platform == 'web' }} - shell: sh - run: | - emcc -v -# Windows only - - name: Windows - Setup MinGW for Windows/MinGW build - uses: egor-tensin/setup-mingw@v2 - if: ${{ inputs.platform == 'windows' }} - with: - version: 12.2.0 -# Dependencies of godot - # Use python 3.x release (works cross platform) - - name: Set up Python 3.x - uses: actions/setup-python@v5 - with: - # Semantic version range syntax or exact version of a Python version - python-version: "3.x" - # Optional - x64 or x86 architecture, defaults to x64 - architecture: "x64" - - name: Setup scons - shell: bash - run: | - python -c "import sys; print(sys.version)" - python -m pip install scons==4.4.0 - scons --version -# Build - - name: Cache .scons_cache - uses: actions/cache@v4 - with: - path: | - ${{ github.workspace }}/${{ inputs.gdextension-directory }}${{ inputs.scons-cache }} - key: ${{ inputs.platform }}_${{ inputs.arch }}_${{ inputs.float-precision }}_${{ inputs.build-target-type }}_cache -# Build gdextension - - name: Build GDExtension Debug Build - shell: sh - env: - SCONS_CACHE: ${{ github.workspace }}/${{ inputs.gdextension-directory }}${{ inputs.scons-cache }} - run: | - scons target=${{ inputs.build-target-type }} platform=${{ inputs.platform }} arch=${{ inputs.arch }} precision=${{ inputs.float-precision }} - working-directory: ${{ inputs.gdextension-directory }} diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 0f7f2aa..0e0fe7e 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -2,8 +2,6 @@ name: Build GDExtension on: workflow_call: push: - pull_request: - merge_group: env: LIBNAME: example @@ -276,13 +274,24 @@ jobs: # clang-format src/** --dry-run --Werror # Build - - name: 🔗 GDExtension Debug Build - uses: ./.github/actions/build + - name: Setup godot-cpp + uses: ./godot-cpp/.github/actions/setup-godot-cpp with: platform: ${{ matrix.platform }} - arch: ${{ matrix.arch }} - float-precision: ${{ matrix.float-precision }} - build-target-type: ${{ matrix.target-type }} + em-version: 3.1.62 + +# Build GDExtension + - name: Cache .scons_cache + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.scons-cache/ + key: ${{ matrix.platform }}_${{ matrix.arch }}_${{ matrix.float-precision }}_${{ matrix.target-type }}_cache + - name: Build GDExtension Debug Build + shell: sh + env: + SCONS_CACHE: ${{ github.workspace }}/.scons-cache/ + run: | + scons target=${{ matrix.target-type }} platform=${{ matrix.platform }} arch=${{ matrix.arch }} precision=${{ matrix.float-precision }} # Sign - name: Mac Sign diff --git a/godot-cpp b/godot-cpp index fbbf9ec..97c16d3 160000 --- a/godot-cpp +++ b/godot-cpp @@ -1 +1 @@ -Subproject commit fbbf9ec4efd8f1055d00edb8d926eef8ba4c2cce +Subproject commit 97c16d3379ba4bae4a9fbf9e74cc283868a4d3d2