# Copyright (c) 2020 Project CHIP Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Full builds - Android

on:
    push:
        branches-ignore:
            - 'dependabot/**'
    workflow_dispatch:

concurrency:
    group: full-${{ github.ref }}-${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.event.number) || (github.event_name == 'workflow_dispatch' && github.run_number) || github.sha }}
    cancel-in-progress: true

env:
    CHIP_NO_LOG_TIMESTAMPS: true

jobs:
    full_android:
        name: Run

        env:
            JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64/

        runs-on: ubuntu-latest
        if: github.actor != 'restyled-io[bot]'

        container:
            image: ghcr.io/project-chip/chip-build-android:80
            volumes:
                - "/tmp/log_output:/tmp/test_logs"

        steps:
            - uses: actions/checkout@v4
              name: Checkout
              with:
                token: ${{ github.token }}
              # To use act like:
            #   act -j full_android
            #
            # Note you likely still need to have non submodules setup for the
            # local machine, like:
            #   git submodule deinit --all
            - uses: actions/checkout@v4
              if: ${{ env.ACT }}
              name: Checkout (ACT for local build)
            - name: Checkout submodules & Bootstrap
              uses: ./.github/actions/checkout-submodules-and-bootstrap
              with:
                platform: android

            - name: Cleanup pigweed CIPD packages
              # This should not generally be needed, however android CI runs out of space
              # We do not need pigweed cross compile here because we use android NDK
              # compilers. Removing this package saves a significant amount of space.
              continue-on-error: true
              run: |
                du -sh .environment/cipd/packages/arm
                rm -rf .environment/cipd/packages/arm
            - name: Build Android arm-chip-tool
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm-chip-tool build"
            - name: Clean out build output
              run: rm -rf ./out examples/android/CHIPTool/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar
            - name: Build Android arm-tv-casting-app
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm-tv-casting-app build"
            - name: Clean out build output
              run: rm -rf ./out examples/tv-casting-app/android/App/app/libs/jniLibs/* examples/tv-casting-app/android/App/app/libs/*.jar
            - name: Build Android arm-tv-server
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm-tv-server build"
            - name: Clean out build output
              run: rm -rf ./out examples/tv-app/android/App/app/libs/jniLibs/* examples/tv-app/android/App/app/libs/*.jar
            - name: Build Android arm64-tv-casting-app
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm64-tv-casting-app build"
            - name: Clean out build output
              run: rm -rf ./out examples/tv-casting-app/android/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar
            - name: Build Android arm64-tv-server
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm64-tv-server build"
            - name: Clean out build output
              run: rm -rf ./out examples/tv-app/android/App/app/libs/jniLibs/* examples/tv-app/android/App/app/libs/*.jar
            - name: Build Android arm64-chip-tool
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm64-chip-tool build"
            - name: Run Android build rule tests
              run: |
                  ./scripts/run_in_build_env.sh \
                    "ninja -C out/android-arm64-chip-tool build/chip/java/tests:java_build_test"
            - name: Clean out build output
              run: rm -rf ./out examples/android/CHIPTool/app/libs/jniLibs/* examples/android/CHIPTool/app/libs/*.jar
            - name: Build Android arm64-chip-test
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target android-arm64-chip-test build"
            - name: Clean out build output
              run: rm -rf ./out examples/android/CHIPTest/app/libs/jniLibs/* examples/android/CHIPTest/app/libs/*.jar
