# 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 - NXP

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:
    k32w0:
        name: K32W0

        env:
            BUILD_TYPE: gn_k32w

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

        container:
            image: ghcr.io/project-chip/chip-build-nxp:80
            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: nxp

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

            - name: Build examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-k32w0-freertos-lighting \
                      --target nxp-k32w0-freertos-lighting-factory \
                      --target nxp-k32w0-freertos-lighting-rotating-id \
                      --target nxp-k32w0-freertos-contact-sensor \
                      --target nxp-k32w0-freertos-contact-sensor-low-power \
                      --target nxp-k32w0-freertos-contact-sensor-low-power-factory \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get lighting app size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp k32w0+release light \
                    out/artifacts/nxp-k32w0-freertos-lighting/chip-k32w0x-light-example.elf \
                    /tmp/bloat_reports/
            - name: Get contact sensor size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp k32w0+release contact \
                    out/artifacts/nxp-k32w0-freertos-contact-sensor-low-power/chip-k32w0x-contact-example.elf \
                    /tmp/bloat_reports/
            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: K32W0
    k32w1:
        name: K32W1

        env:
            BUILD_TYPE: gn_k32w

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

        container:
            image: ghcr.io/project-chip/chip-build-nxp: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: nxp
                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 examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-k32w1-freertos-lighting \
                      --target nxp-k32w1-freertos-contact-sensor-low-power \
                      --target nxp-k32w1-freertos-lock-app \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get lighting app size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp k32w1+release light \
                    out/artifacts/nxp-k32w1-freertos-lighting/chip-k32w1-light-example.elf \
                    /tmp/bloat_reports/
            - name: Get contact sensor size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp k32w1+release contact \
                    out/artifacts/nxp-k32w1-freertos-contact-sensor-low-power/chip-k32w1-contact-example.elf \
                    /tmp/bloat_reports/
            - name: Get lock app size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp k32w1+release lock \
                    out/artifacts/nxp-k32w1-freertos-lock-app/chip-k32w1-lock-example.elf \
                    /tmp/bloat_reports/
            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: K32W1
    mcxw71:
        name: MCXW71

        env:
            BUILD_TYPE: gn_k32w

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

        container:
            image: ghcr.io/project-chip/chip-build-nxp: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: nxp
                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 examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-mcxw71-freertos-lighting \
                      --target nxp-mcxw71-freertos-contact-sensor-low-power \
                      --target nxp-mcxw71-freertos-lock-app \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get lighting app size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp mcxw71+release light \
                    out/artifacts/nxp-mcxw71-freertos-lighting/chip-mcxw71-light-example.elf \
                    /tmp/bloat_reports/
            - name: Get contact sensor size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp mcxw71+release contact \
                    out/artifacts/nxp-mcxw71-freertos-contact-sensor-low-power/chip-mcxw71-contact-example.elf \
                    /tmp/bloat_reports/
            - name: Get lock app size stats
              run: |
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nxp mcxw71+release lock \
                    out/artifacts/nxp-mcxw71-freertos-lock-app/chip-mcxw71-lock-example.elf \
                    /tmp/bloat_reports/
            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: MCXW71
    rw61x:
        name: RW61X

        env:
            BUILD_TYPE: gn_rw61x

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

        container:
            image: ghcr.io/project-chip/chip-build-nxp: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: nxp
                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 RW61X all clusters example app
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rw61x-freertos-all-clusters-wifi \
                      --target nxp-rw61x-freertos-all-clusters-thread \
                      --target nxp-rw61x-freertos-all-clusters-wifi-ota-cmake \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "

            - name: Build RW61X thermostat example app
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rw61x-freertos-thermostat-wifi \
                      --target nxp-rw61x-freertos-thermostat-thread \
                      --target nxp-rw61x-freertos-thermostat-thread-wifi \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "

            - name: Build RW61X laundry-washer example app
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rw61x-freertos-laundry-washer-wifi \
                      --target nxp-rw61x-freertos-laundry-washer-thread \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: RW61X
    zephyr:
        name: ZEPHYR

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

        container:
            image: ghcr.io/project-chip/chip-build-nxp-zephyr:81

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

            - name: Build NXP Zephyr examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rw61x-zephyr-all-clusters \
                      --target nxp-rw61x-zephyr-thermostat \
                      --target nxp-rw61x-zephyr-laundry-washer-factory \
                      --target nxp-rw61x_eth-zephyr-thermostat-ethernet \
                      build \
                  "
