name: 🤖 Android builds on: workflow_call: inputs: godot-treeish: description: A tag, branch or commit hash in the Godot repository. type: string default: master limboai-treeish: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master workflow_dispatch: inputs: godot-treeish: description: A tag, branch or commit hash in the Godot repository. type: string default: master limboai-treeish: description: A tag, branch or commit hash in the LimboAI repository. type: string default: master # Global Settings env: SCONS_CACHE_LIMIT: 4096 SCONSFLAGS: production=yes tests=no verbose=yes warnings=extra werror=yes DOTNET_NOLOGO: true DOTNET_CLI_TELEMETRY_OPTOUT: true jobs: android-builds: runs-on: "ubuntu-20.04" name: ${{ matrix.name }} strategy: fail-fast: false matrix: include: - name: Template (arm64, debug) arch: arm64 target: template_debug - name: Template (arm64, release) arch: arm64 target: template_release - name: Template (arm32, debug) arch: arm32 target: template_debug - name: Template (arm32, release) arch: arm32 target: template_release - name: Template (x86_64, debug) arch: x86_64 target: template_debug - name: Template (x86_64, release) arch: x86_64 target: template_release - name: Template (x86_32, debug) arch: x86_32 target: template_debug - name: Template (x86_32, release) arch: x86_32 target: template_release env: BIN: godot.linuxbsd.${{matrix.target}}.${{matrix.arch}} #${{ matrix.build-mono == true && '.mono' || '' }} steps: - name: Clone Godot uses: actions/checkout@v3 with: repository: godotengine/godot ref: ${{ inputs.godot-treeish }} - name: Clone LimboAI module uses: actions/checkout@v3 with: path: modules/limboai ref: ${{ inputs.limboai-treeish }} # Inits GODOT_VERSION, LIMBOAI_VERSION and NAME_PREFIX environment variables. - uses: ./modules/limboai/.github/actions/init-version - name: Set up Java 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 - name: Set up scons run: | python -c "import sys; print(sys.version)" python -m pip install scons==4.4.0 python --version scons --version - name: Set up scons cache uses: actions/cache@v3 with: path: ${{github.workspace}}/.scons_cache/ key: ${{env.BIN}}-${{inputs.godot-treeish}}-${{inputs.limboai-treeish}}-${{env.LIMBOAI_VERSION}} restore-keys: | ${{env.BIN}}-${{inputs.godot-treeish}}-${{inputs.limboai-treeish}}-${{env.LIMBOAI_VERSION}} ${{env.BIN}}-${{inputs.godot-treeish}}-${{inputs.limboai-treeish}} ${{env.BIN}}-${{inputs.godot-treeish}} - name: Compilation env: SCONS_CACHE: ${{github.workspace}}/.scons_cache/ run: | scons platform=android target=${{matrix.target}} arch=${{matrix.arch}} ${{env.SCONSFLAGS}} ls platform/android/java/lib/libs/* - name: Upload artifact uses: actions/upload-artifact@v3 with: name: android-templates path: platform/android/java/lib/libs/* make-android-package: runs-on: "ubuntu-20.04" name: Make Android package needs: android-builds steps: - name: Clone Godot uses: actions/checkout@v3 with: repository: godotengine/godot ref: ${{ inputs.godot-treeish }} - name: Clone LimboAI module uses: actions/checkout@v3 with: path: modules/limboai ref: ${{ inputs.limboai-treeish }} # Inits GODOT_VERSION, LIMBOAI_VERSION and NAME_PREFIX environment variables. - uses: ./modules/limboai/.github/actions/init-version - name: Download Android template builds uses: actions/download-artifact@v3 with: name: android-templates path: platform/android/java/lib/libs/ - name: Set up Java 11 uses: actions/setup-java@v3 with: distribution: temurin java-version: 11 - name: Set up Python 3.x uses: actions/setup-python@v4 with: python-version: 3.x architecture: x64 - name: Set up scons run: | python -c "import sys; print(sys.version)" python -m pip install scons==4.4.0 python --version scons --version - name: Generate Godot templates run: | cd platform/android/java ./gradlew generateGodotTemplates cd ../../.. ls -l bin/ mkdir -p out/templates/ mv bin/android_* out/templates/ ls -l out/* - name: Delete Android template builds uses: geekyeggo/delete-artifact@v2 with: name: android-templates failOnError: false - name: Upload Android libs uses: actions/upload-artifact@v3 with: name: ${{env.NAME_PREFIX}}.android-lib path: bin/godot-lib.* - name: Upload Android templates uses: actions/upload-artifact@v3 with: name: ${{env.NAME_PREFIX}}.export-templates path: out/*