diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 2294d2d..42fc920 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -30,73 +30,12 @@ inputs: runs: using: composite steps: -# Android only - - name: Android - Set up Java 17 - uses: actions/setup-java@v4 - if: ${{ inputs.platform == 'android' }} + - name: Setup godot-cpp + uses: ./.github/actions/setup-godot-cpp 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 + platform: ${{ matrix.platform }} + em-version: ${{ inputs.em_version }} + em-cache-directory: ${{ inputs.em-cache-directory }}.${{ inputs.float-precision }}.${{ inputs.build-target-type }} # Build - name: Cache .scons_cache uses: actions/cache@v4 diff --git a/.github/actions/setup-godot-cpp/action.yml b/.github/actions/setup-godot-cpp/action.yml new file mode 100644 index 0000000..21d04a9 --- /dev/null +++ b/.github/actions/setup-godot-cpp/action.yml @@ -0,0 +1,84 @@ +name: Setup godot-cpp +description: Setup build dependencies for godot-cpp. + +inputs: + platform: + required: true + description: Target platform. + em-version: + default: 3.1.62 + description: Emscripten version. + em-cache-directory: + default: emsdk-cache + description: Emscripten cache directory. + +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 }} + - 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