# 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:
            - 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:
    FreeRTOS:
        name: FREERTOS

        env:
            BUILD_TYPE: gn_FreeRTOS

        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: Detect changed paths
              uses: dorny/paths-filter@v3
              id: changed_paths
              with:
                  filters: |
                      nxp:
                        - '**/nxp/**'

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

            - name: Build K32W0 examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-k32w0-freertos-lighting-factory \
                      --target nxp-k32w0-freertos-contact-sensor-low-power-factory \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get K32W0 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-factory/chip-k32w0x-light-example.elf \
                    /tmp/bloat_reports/
            - name: Get K32W0 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-factory/chip-k32w0x-contact-example.elf \
                    /tmp/bloat_reports/

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

            - name: Build K32W1 examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-k32w1-freertos-lighting \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get K32W1 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: clean build
              run: rm -rf ./out

            - name: Build MCXW71 examples
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-mcxw71-freertos-contact-sensor-low-power \
                      --target nxp-mcxw71-freertos-lock-app \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Get MCXW71 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 MCXW71 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: clean build
              run: rm -rf ./out

            - name: Build RT1060 all clusters example app
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1060-freertos-all-clusters-wifi-iw416 \
                      --target nxp-rt1060-freertos-all-clusters-wifi-w8801 \
                      --target nxp-rt1060-freertos-all-clusters-wifi-ota-evkc-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Build RT1060 thermostat example app
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1060-freertos-thermostat-thread-wifi-evkc-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Build RT1060 laundry-washer example app
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1060-freertos-laundry-washer-wifi-evkc-iwx12 \
                      --target nxp-rt1060-freertos-laundry-washer-thread-evkc-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "

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

            - name: Build RT1170 all clusters example app
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1170-freertos-all-clusters-wifi-iwx12 \
                      --target nxp-rt1170-freertos-all-clusters-wifi-ota-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Build RT1170 thermostat example app
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1170-freertos-thermostat-thread-wifi-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Build RT1170 laundry-washer example app
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rt1170-freertos-laundry-washer-thread-iwx12 \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "

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

            - 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-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-thread-wifi \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "
            - name: Build RW61X laundry-washer example app
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              run: |
                  scripts/run_in_build_env.sh "\
                      ./scripts/build/build_examples.py \
                      --target nxp-rw61x-freertos-laundry-washer-wifi \
                      build \
                      --copy-artifacts-to out/artifacts \
                  "

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

            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: NXP-FREERTOS
    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: Detect changed paths
              uses: dorny/paths-filter@v3
              id: changed_paths
              with:
                  filters: |
                      nxp:
                        - '**/nxp/**'
            - name: Build NXP Zephyr examples
              if: github.event_name == 'push' || steps.changed_paths.outputs.nxp == 'true'
              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 \
                  "
