# Copyright (c) 2021 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: Build example - Open IoT SDK

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

concurrency:
    group: ${{ 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:
    openiotsdk:
        name: Open IoT SDK examples building

        env:
            TEST_NETWORK_NAME: OIStest

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

        container:
            image: ghcr.io/project-chip/chip-build-openiotsdk:47
            volumes:
                - "/tmp/bloat_reports:/tmp/bloat_reports"
            options: --privileged

        steps:
            - name: Checkout
              uses: actions/checkout@v4
            - name: Checkout submodules & Bootstrap
              uses: ./.github/actions/checkout-submodules-and-bootstrap
              with:
                platform: openiotsdk linux
                extra-submodule-parameters: " --recursive"

            - name: Set up environment for size reports
              uses: ./.github/actions/setup-size-reports
              if: ${{ !env.ACT }}
              with:
                gh-context: ${{ toJson(github) }}

            - name: Build and install Python controller
              run: |
                  scripts/run_in_build_env.sh './scripts/build_python.sh --install_virtual_env out/venv'
                  scripts/run_in_python_env.sh out/venv 'pip install -r scripts/setup/requirements.openiotsdk.txt'

            - name: Build shell example
              id: build_shell
              run: |
                  scripts/examples/openiotsdk_example.sh shell
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release shell \
                    examples/shell/openiotsdk/build/chip-openiotsdk-shell-example.elf \
                    /tmp/bloat_reports/

            - name: "Test: shell example"
              if: github.event_name == 'workflow_dispatch' && steps.build_shell.outcome == 'success'
              run: |
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/examples/openiotsdk_example.sh --no-activate -C test shell'

            - name: Clean shell output
              run: rm -rf examples/shell/openiotsdk/build

            - name: Build lock-app example (mbedtls)
              # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026
              if: false
              id: build_lock_app_mbedtls
              run: |
                  scripts/examples/openiotsdk_example.sh -b mbedtls lock-app
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release lock-app-mbedtls \
                    examples/lock-app/openiotsdk/build/chip-openiotsdk-lock-app-example.elf \
                    /tmp/bloat_reports/

            - name: Build tv-app example
              id: build_tv_app
              timeout-minutes: 10
              run: |
                  scripts/examples/openiotsdk_example.sh tv-app
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release tv-app \
                    examples/tv-app/openiotsdk/build/chip-openiotsdk-tv-app-example.elf \
                    /tmp/bloat_reports/

            - name: "Test: tv-app example"
              if: github.event_name == 'workflow_dispatch' && steps.build_tv_app.outcome == 'success'
              timeout-minutes: 10
              run: |
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap tv-app'
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down

            - name: Clean tv-app output
              run: rm -rf examples/tv-app/openiotsdk/build

            - name: Build all-clusters-app example
              id: build_all_clusters_app
              timeout-minutes: 10
              run: |
                  scripts/examples/openiotsdk_example.sh all-clusters-app
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release all-clusters-app \
                    examples/all-clusters-app/openiotsdk/build/chip-openiotsdk-all-clusters-app-example.elf \
                    /tmp/bloat_reports/

            - name: "Test: all-clusters-app example"
              if: github.event_name == 'workflow_dispatch' && steps.build_all_clusters_app.outcome == 'success'
              timeout-minutes: 5
              run: |
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap all-clusters-app'
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down

            - name: Clean all-clusters-app output
              run: rm -rf examples/all-clusters-app/openiotsdk/build

            - name: Build ota-requestor-app example
              id: build_ota_requestor_app
              timeout-minutes: 10
              run: |
                  scripts/examples/openiotsdk_example.sh -v 1 -V 0.0.1 ota-requestor-app
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release ota-requestor-app \
                    examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.elf \
                    /tmp/bloat_reports/

            - name: Build unit tests (mbedtls)
              # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026
              if: false
              id: build_unit_tests_mbedtls
              run: |
                  scripts/examples/openiotsdk_example.sh -b mbedtls unit-tests

            - name: Build the OTA provider (Linux)
              id: build_ota_provider_app
              if: steps.build_ota_requestor_app.outcome == 'success'
              timeout-minutes: 10
              run: |
                  scripts/examples/gn_build_example.sh examples/ota-provider-app/linux/ out/ota-provider chip_config_network_layer_ble=false

            - name: "Test: lock-app example (mbedtls)"
              if: github.event_name == 'workflow_dispatch' && steps.build_lock_app_mbedtls.outcome == 'success'
              run: |
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap lock-app'
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down

            - name: "Test: ota-requestor-app example"
              if: github.event_name == 'workflow_dispatch' && steps.build_ota_requestor_app.outcome == 'success' && steps.build_ota_provider_app.outcome == 'success'
              timeout-minutes: 30
              run: |
                  mkdir out/binaries
                  cp examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.elf out/binaries/
                  scripts/examples/openiotsdk_example.sh -c -v 2 -V 0.0.2 ota-requestor-app
                  cp examples/ota-requestor-app/openiotsdk/build/chip-openiotsdk-ota-requestor-app-example.ota out/binaries/
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -p out/binaries -v 2 -V 0.0.2 -C test -n ${TEST_NETWORK_NAME}tap ota-requestor-app'
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down

            - name: "Test: unit-tests (mbedtls)"
              if: github.event_name == 'workflow_dispatch' && steps.build_unit_tests_mbedtls.outcome == 'success'
              run: |
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/examples/openiotsdk_example.sh --no-activate -C test unit-tests'

            - name: Build lock-app example (psa)
              # Disabled being tracked here: https://github.com/project-chip/connectedhomeip/issues/28026
              if: false
              id: build_lock_app_psa
              run: |
                  scripts/examples/openiotsdk_example.sh -c -b psa lock-app
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    openiotsdk release lock-app-psa \
                    examples/lock-app/openiotsdk/build/chip-openiotsdk-lock-app-example.elf \
                    /tmp/bloat_reports/

            - name: "Test: lock-app example (psa)"
              if: github.event_name == 'workflow_dispatch' && steps.build_lock_app_psa.outcome == 'success'
              run: |
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME up
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/run_in_ns.sh ${TEST_NETWORK_NAME}ns scripts/examples/openiotsdk_example.sh --no-activate -C test -n ${TEST_NETWORK_NAME}tap lock-app'
                  scripts/setup/openiotsdk/network_setup.sh -n $TEST_NETWORK_NAME down

            - name: Build unit tests (psa)
              id: build_unit_tests_psa
              run: |
                  scripts/examples/openiotsdk_example.sh -b psa unit-tests

            - name: "Test: unit-tests (psa)"
              if: github.event_name == 'workflow_dispatch' && steps.build_unit_tests_psa.outcome == 'success'
              run: |
                  scripts/run_in_python_env.sh out/venv \
                    'scripts/examples/openiotsdk_example.sh --no-activate -C test unit-tests'
