# Copyright (c) 2022-2024 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 - Telink

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

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:
    telink:
        name: Telink
        env:
            BUILD_TYPE: telink

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

        container:
            image: ghcr.io/project-chip/chip-build-telink:50
            volumes:
                - "/tmp/bloat_reports:/tmp/bloat_reports"

        steps:
            - name: Checkout
              uses: actions/checkout@v4
            - name: Checkout submodules & Bootstrap
              uses: ./.github/actions/checkout-submodules-and-bootstrap
              with:
                platform: telink

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

            # - name: Update Zephyr to specific revision (for developers purpose)
            #   run: scripts/run_in_build_env.sh "python3 scripts/tools/telink/update_zephyr.py 68deadeb5c20b82d68700e720d4580e8003bf1d8"

            - name: Build example Telink (B92 retention) Air Quality Sensor App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-air-quality-sensor' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a_retention air-quality-sensor-app \
                    out/telink-tlsr9528a_retention-air-quality-sensor/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (W91) All Clusters App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-all-clusters' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9118bdk40d all-clusters-app \
                    out/telink-tlsr9118bdk40d-all-clusters/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B92) All Clusters Minimal App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a-all-clusters-minimal' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a all-clusters-minimal-app \
                    out/telink-tlsr9528a-all-clusters-minimal/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B91) Bridge App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-bridge' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d bridge-app \
                    out/telink-tlsr9518adk80d-bridge/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B92 retention) Contact Sensor App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-contact-sensor' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a_retention contact-sensor-app \
                    out/telink-tlsr9528a_retention-contact-sensor/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build tools required for Factory Data
              run: |
                  ./scripts/checkout_submodules.py --allow-changing-global-git-config --shallow --platform linux
                  ./scripts/build/gn_gen.sh
                  ./scripts/run_in_build_env.sh "ninja -C ./out/$BUILD_TYPE chip-cert chip-tool spake2p"
                  mv ./out/$BUILD_TYPE/chip-cert ./out/$BUILD_TYPE/chip-tool ./out/$BUILD_TYPE/spake2p ./out

            - name: clean out build output (keep tools)
              run: rm -rf ./out/telink*

            - name: Build example Telink (W91) Lighting App with OTA, Factory Data
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-light-ota-factory-data' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9118bdk40d lighting-app-ota-factory-data \
                    out/telink-tlsr9118bdk40d-light-ota-factory-data/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output (keep tools)
              run: rm -rf ./out/telink*

            - name: Build example Telink (B91) Lighting App with OTA, RPC, Factory Data and 4Mb flash
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-ota-rpc-factory-data-4mb' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d lighting-app-ota-rpc-factory-data-4mb \
                    out/telink-tlsr9518adk80d-light-ota-rpc-factory-data-4mb/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output (keep tools)
              run: rm -rf ./out/telink*

            - name: Build example Telink (B92) Light Switch App with OTA, Shell, Factory Data
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a-light-switch-ota-shell-factory-data' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a light-switch-app-ota-shell-factory-data \
                    out/telink-tlsr9528a-light-switch-ota-shell-factory-data/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B92) Lock App with DFU
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a-lock-dfu' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a lock-app-dfu \
                    out/telink-tlsr9528a-lock-dfu/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B91) OTA Requestor App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-ota-requestor' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d ota-requestor-app \
                    out/telink-tlsr9518adk80d-ota-requestor/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B95) Pump App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9258a-pump' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9258a pump-app \
                    out/telink-tlsr9258a-pump/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (W91) Pump Controller App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-pump-controller' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9118bdk40d pump-controller-app \
                    out/telink-tlsr9118bdk40d-pump-controller/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B91) Shell App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-shell' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d shell \
                    out/telink-tlsr9518adk80d-shell/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B92 retention) Smoke CO Alarm App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9528a_retention-smoke-co-alarm' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9528a_retention smoke_co_alarm-app \
                    out/telink-tlsr9528a_retention-smoke-co-alarm/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B91 Mars) Temperature Measurement App with OTA
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-temperature-measurement-mars-ota' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d temperature-measurement-app-mars-ota \
                    out/telink-tlsr9518adk80d-temperature-measurement-mars-ota/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B91) Thermostat App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-thermostat' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d thermostat \
                    out/telink-tlsr9518adk80d-thermostat/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Build example Telink (B95) Window Covering App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9258a-window-covering' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9258a window-covering \
                    out/telink-tlsr9258a-window-covering/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

            - name: clean out build output
              run: rm -rf ./out

            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: Telink
