From 9943675dcbfb1df48b74d2405b910371ff0d1ec3 Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Wed, 27 Nov 2024 00:24:02 +0100 Subject: [PATCH] Add a separate setup-godot-cpp github action. --- .github/actions/setup-godot-cpp/action.yml | 62 ++++++++++++++++++++++ .github/workflows/ci.yml | 31 ++--------- 2 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 .github/actions/setup-godot-cpp/action.yml diff --git a/.github/actions/setup-godot-cpp/action.yml b/.github/actions/setup-godot-cpp/action.yml new file mode 100644 index 000000000..287fb2382 --- /dev/null +++ b/.github/actions/setup-godot-cpp/action.yml @@ -0,0 +1,62 @@ +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. + windows-compiler: + required: true + description: The compiler toolchain to use on Windows ('mingw' or 'msvc'). + type: choice + options: + - mingw + - msvc + default: mingw + mingw-version: + default: 12.2.0 + description: MinGW version. + ndk-version: + default: r23c + description: Android NDK version. + scons-version: + default: 4.4.0 + description: SCons version. + +runs: + using: composite + steps: + - name: Setup Python (for SCons) + uses: actions/setup-python@v5 + with: + python-version: 3.x + + - name: Setup Android dependencies + if: inputs.platform == 'android' + uses: nttld/setup-ndk@v1 + with: + ndk-version: ${{ inputs.ndk-version }} + link-to-sdk: true + + - name: Setup Web dependencies + if: inputs.platform == 'web' + uses: mymindstorm/setup-emsdk@v14 + with: + version: ${{ inputs.em-version }} + no-cache: true + + - name: Setup MinGW for Windows/MinGW build + if: inputs.platform == 'windows' && inputs.windows-compiler == 'mingw' + uses: egor-tensin/setup-mingw@v2 + with: + version: ${{ inputs.mingw-version }} + + - name: Setup SCons + shell: bash + run: | + python -c "import sys; print(sys.version)" + python -m pip install scons==${{ inputs.scons-version }} + scons --version diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33b2450d8..6580de90f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,34 +108,11 @@ jobs: cache-name: ${{ matrix.cache-name }} continue-on-error: true - - name: Set up Python (for SCons) - uses: actions/setup-python@v5 + - name: Setup godot-cpp + uses: ./.github/actions/setup-godot-cpp with: - python-version: 3.x - - - name: Android dependencies - if: matrix.platform == 'android' - uses: nttld/setup-ndk@v1 - with: - ndk-version: r23c - link-to-sdk: true - - - name: Web dependencies - if: matrix.platform == 'web' - uses: mymindstorm/setup-emsdk@v14 - with: - version: ${{ env.EM_VERSION }} - no-cache: true - - - name: Setup MinGW for Windows/MinGW build - if: matrix.platform == 'windows' && matrix.flags == 'use_mingw=yes' - uses: egor-tensin/setup-mingw@v2 - with: - version: 12.2.0 - - - name: Install scons - run: | - python -m pip install scons==4.0.0 + platform: ${{ matrix.platform }} + windows-compiler: ${{ contains(matrix.flags, 'use_mingw=yes') && 'mingw' || 'msvc' }} - name: Generate godot-cpp sources only run: |