# 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 - TI CC26X2X7

on:
    push:
    pull_request:

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

jobs:
    cc26x2x7:
        name: cc26x2x7
        timeout-minutes: 60

        env:
            BUILD_TYPE: gn_cc26x2x7

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

        container:
            image: connectedhomeip/chip-build-ti:0.6.06
            volumes:
                - "/tmp/bloat_reports:/tmp/bloat_reports"
        steps:
            - uses: Wandalen/wretry.action@v1.0.36
              name: Checkout
              with:
                  action: actions/checkout@v3
                  with: |
                      token: ${{ github.token }}
                  attempt_limit: 3
                  attempt_delay: 2000
            - name: Checkout submodules
              run: scripts/checkout_submodules.py --shallow --platform cc13x2_26x2
            - name: Set up environment for size reports
              if: ${{ !env.ACT }}
              env:
                  GH_CONTEXT: ${{ toJson(github) }}
              run: scripts/tools/memory/gh_sizes_environment.py "${GH_CONTEXT}"
            - name: Bootstrap
              timeout-minutes: 25
              run: scripts/build/gn_bootstrap.sh
            - name: Uploading bootstrap logs
              uses: actions/upload-artifact@v3
              if: ${{ always() && !env.ACT }}
              with:
                  name: bootstrap-logs
                  path: |
                      .environment/gn_out/.ninja_log
                      .environment/pigweed-venv/*.log
            - name: Build examples
              timeout-minutes: 60
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target cc13x2x7_26x2x7-all-clusters-mtd \
                      --target cc13x2x7_26x2x7-all-clusters-minimal \
                      --target cc13x2x7_26x2x7-lock-ftd \
                      --target cc13x2x7_26x2x7-lock-mtd \
                      --target cc13x2x7_26x2x7-pump \
                      --target cc13x2x7_26x2x7-pump-controller \
                      --target cc13x2x7_26x2x7-shell \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get lock FTD size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 lock-ftd \
                    out/artifacts/cc13x2x7_26x2x7-lock-ftd/chip-LP_CC2652R7-lock-example.out \
                    /tmp/bloat_reports/
            - name: Get lock MTD size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 lock-mtd \
                    out/artifacts/cc13x2x7_26x2x7-lock-mtd/chip-LP_CC2652R7-lock-example.out \
                    /tmp/bloat_reports/
            - name: Get Pump App size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 pump-app \
                    out/artifacts/cc13x2x7_26x2x7-pump/chip-LP_CC2652R7-pump-example.out \
                    /tmp/bloat_reports/
            - name: Get Pump Controller App size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 pump-controller-app \
                    out/artifacts/cc13x2x7_26x2x7-pump-controller/chip-LP_CC2652R7-pump-controller-example.out \
                    /tmp/bloat_reports/
            - name: Get All Clusters App size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 all-clusters-app \
                    out/artifacts/cc13x2x7_26x2x7-all-clusters-mtd/chip-LP_CC2652R7-all-clusters-example.out \
                    /tmp/bloat_reports/
            - name: Get All Clusters Minimal App size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 all-clusters-minimal-app \
                    out/artifacts/cc13x2x7_26x2x7-all-clusters-minimal/chip-LP_CC2652R7-all-clusters-minimal-example.out \
                    /tmp/bloat_reports/
            - name: Get Shell App size stats
              timeout-minutes: 5
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    cc13x2_26x2 LP_CC2652R7 shell \
                    out/artifacts/cc13x2x7_26x2x7-shell/chip-LP_CC2652R7-shell-example.out \
                    /tmp/bloat_reports/
            - name: Uploading Size Reports
              uses: actions/upload-artifact@v3
              if: ${{ !env.ACT }}
              with:
                  name: Size,cc13x2x7_26x2x7-Examples,${{ env.GH_EVENT_PR }},${{ env.GH_EVENT_HASH }},${{ env.GH_EVENT_PARENT }},${{ github.event_name }}
                  path: |
                      /tmp/bloat_reports/
