# Copyright (c) 2022 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:
    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:1
            volumes:
                - "/tmp/bloat_reports:/tmp/bloat_reports"

        steps:
            - name: Checkout
              uses: actions/checkout@v3
            - 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: Build example Telink All Clusters App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-all-clusters' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d all-clusters-app \
                    out/telink-tlsr9518adk80d-all-clusters/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

            - name: Build example Telink 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 Contact Sensor App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-contact-sensor' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d contact-sensor-app \
                    out/telink-tlsr9518adk80d-contact-sensor/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

            - name: Build example Telink Lighting App with RPC
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-rpc' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d lighting-app-rpc \
                    out/telink-tlsr9518adk80d-light-rpc/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

            - name: Build example Telink Lighting App with 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"
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-light-factory-data' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d lighting-app-factory-data \
                    out/telink-tlsr9518adk80d-light-factory-data/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

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

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

            - name: Build example Telink 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 Pump App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-pump' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d pump-app \
                    out/telink-tlsr9518adk80d-pump/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

            - name: Build example Telink 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 Smoke CO Alarm App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-smoke-co-alarm' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d smoke_co_alarm-app \
                    out/telink-tlsr9518adk80d-smoke-co-alarm/zephyr/zephyr.elf \
                    /tmp/bloat_reports/

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

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

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

            - name: Build example Telink 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 Window Covering App
              run: |
                  ./scripts/run_in_build_env.sh \
                    "./scripts/build/build_examples.py --target 'telink-tlsr9518adk80d-window-covering' build"
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    telink tlsr9518adk80d window-covering \
                    out/telink-tlsr9518adk80d-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
