# 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:
            - master
            - 'v*-branch'
    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:81
            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 3ed7686a9378de6be1368c912f9a42f998bbfb18"

            - 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
              continue-on-error: true
              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 (B95) Bridge App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9258a-bridge' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9258a bridge-app \
                    out/telink-tlsr9258a-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
              continue-on-error: true
              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 (B95) OTA Requestor App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9258a-ota-requestor' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9258a ota-requestor-app \
                    out/telink-tlsr9258a-ota-requestor/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

            - name: Build example Telink (B91) Pump Controller App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump-controller' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d pump-controller-app \
                    out/telink-tlsr9518adk80d-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 (W91) Window Covering App
              continue-on-error: true
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9118bdk40d-window-covering' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9118bdk40d window-covering \
                    out/telink-tlsr9118bdk40d-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
