123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- name: 🤖 Android Builds
- on:
- workflow_call:
- # Global Settings
- env:
- # Used for the cache key. Add version suffix to force clean build.
- GODOT_BASE_BRANCH: master
- SCONSFLAGS: verbose=yes warnings=extra werror=yes debug_symbols=no module_text_server_fb_enabled=yes strict_checks=yes
- jobs:
- build-android:
- runs-on: ubuntu-24.04
- name: ${{ matrix.name }}
- timeout-minutes: 60
- strategy:
- fail-fast: false
- matrix:
- include:
- - name: Editor (target=editor)
- cache-name: android-editor
- target: editor
- tests: false
- sconsflags: arch=arm64 production=yes swappy=yes
- cache-limit: 1
- - name: Template arm32 (target=template_release, arch=arm32)
- cache-name: android-template-arm32
- target: template_release
- tests: false
- sconsflags: arch=arm32 swappy=yes
- cache-limit: 1
- - name: Template arm64 (target=template_release, arch=arm64)
- cache-name: android-template-arm64
- target: template_release
- tests: false
- sconsflags: arch=arm64 swappy=yes
- cache-limit: 1
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: recursive
- - name: Set up Java 17
- uses: actions/setup-java@v4
- with:
- distribution: temurin
- java-version: 17
- - name: Restore Godot build cache
- uses: ./.github/actions/godot-cache-restore
- with:
- cache-name: ${{ matrix.cache-name }}
- continue-on-error: true
- - name: Setup Python and SCons
- uses: ./.github/actions/godot-deps
- - name: Download pre-built Android Swappy Frame Pacing Library
- uses: dsaltares/fetch-gh-release-asset@1.1.2
- with:
- repo: darksylinc/godot-swappy
- version: tags/v2023.3.0.0
- file: godot-swappy.7z
- target: swappy/godot-swappy.7z
- - name: Extract pre-built Android Swappy Frame Pacing Library
- run: 7za x -y swappy/godot-swappy.7z -o${{github.workspace}}/thirdparty/swappy-frame-pacing
- - name: Compilation
- uses: ./.github/actions/godot-build
- with:
- sconsflags: ${{ env.SCONSFLAGS }} ${{ matrix.sconsflags }}
- platform: android
- target: ${{ matrix.target }}
- tests: ${{ matrix.tests }}
- scons-cache-limit: ${{ matrix.cache-limit }}
- - name: Save Godot build cache
- uses: ./.github/actions/godot-cache-save
- with:
- cache-name: ${{ matrix.cache-name }}
- continue-on-error: true
- - name: Generate Godot templates
- if: matrix.target == 'template_release'
- run: |
- cd platform/android/java
- ./gradlew generateGodotTemplates
- cd ../../..
- ls -l bin/
- - name: Generate Godot editor
- if: matrix.target == 'editor'
- run: |
- cd platform/android/java
- ./gradlew generateGodotEditor
- ./gradlew generateGodotHorizonOSEditor
- ./gradlew generateGodotPicoOSEditor
- cd ../../..
- ls -l bin/android_editor_builds/
- # Separate different editors for multiple artifacts
- mkdir horizonos
- mv bin/android_editor_builds/*-horizonos-* horizonos
- mkdir picoos
- mv bin/android_editor_builds/*-picoos-* picoos
- - name: Upload artifact
- uses: ./.github/actions/upload-artifact
- with:
- name: ${{ matrix.cache-name }}
- - name: Upload artifact (Horizon OS)
- if: matrix.target == 'editor'
- uses: ./.github/actions/upload-artifact
- with:
- name: ${{ matrix.cache-name }}-horizonos
- path: horizonos
- - name: Upload artifact (PICO OS)
- if: matrix.target == 'editor'
- uses: ./.github/actions/upload-artifact
- with:
- name: ${{ matrix.cache-name }}-picoos
- path: picoos
|