# Copyright (c) 2020 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 - nRF Connect SDK

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:
    nrfconnect:
        name: nRF Connect SDK

        env:
            BUILD_TYPE: nrfconnect

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

        container:
            image: ghcr.io/project-chip/chip-build-nrf-platform:90
            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: nrfconnect
            - name: Detect changed paths
              uses: dorny/paths-filter@v3
              id: changed_paths
              with:
                  filters: |
                      nrfconnect:
                        - '**/nrfconnect/**'
                        - '**/Zephyr/**'
                        - '**/zephyr/**'
                      tests:
                        - '**/tests/**'
                      shell:
                        - 'examples/shell/nrfconnect/**'
            - name: Set up environment for size reports
              uses: ./.github/actions/setup-size-reports
              if: ${{ !env.ACT }}
              with:
                gh-context: ${{ toJson(github) }}

            - name: Check nRF Connect SDK revision.
              run: scripts/run_in_build_env.sh "python3 scripts/setup/nrfconnect/update_ncs.py --check"
            - name: Run unit tests of factory data generation script
              run: |
                  scripts/run_in_build_env.sh 'pip3 install -r scripts/setup/requirements.nrfconnect.txt'
                  scripts/run_in_build_env.sh "./scripts/tools/nrfconnect/tests/test_generate_factory_data.py"
            - name: Build example nRF Connect SDK Lock App on nRF52840 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lock-app nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 lock-app \
                    examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lighting App on nRF52840 Dongle
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lighting-app nrf52840dongle/nrf52840 -DCONFIG_CHIP_ROTATING_DEVICE_ID=y
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dongle_nrf52840 lighting-app \
                    examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lighting App on nRF52840 DK with RPC
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lighting-app nrf52840dk/nrf52840 -DOVERLAY_CONFIG=rpc.overlay
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840+rpc lighting-app \
                    examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Light Switch App on nRF52840 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh light-switch-app nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 light-switch-app \
                    examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Shell on nRF52840 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.shell == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh shell nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 shell \
                    examples/shell/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Pump App on nRF52840 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh pump-app nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 pump-app \
                    examples/pump-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Pump Controller App on nRF52840 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh pump-controller-app nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 pump-controller-app \
                    examples/pump-controller-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK All Clusters App on nRF52840 DK
              run: |
                  scripts/examples/nrfconnect_example.sh all-clusters-app nrf52840dk/nrf52840
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 all-clusters-app \
                    examples/all-clusters-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK All Clusters Minimal App on nRF52840 DK
              run: |
                  scripts/examples/nrfconnect_example.sh all-clusters-minimal-app nrf52840dk/nrf52840 -DFILE_SUFFIX=dfu
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf52840dk_nrf52840 all-clusters-minimal-app \
                    examples/all-clusters-minimal-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lock App on nRF5340 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lock-app nrf5340dk/nrf5340/cpuapp
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf5340dk_nrf5340_cpuapp lock-app \
                    examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lighting App on nRF5340 DK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lighting-app nrf5340dk/nrf5340/cpuapp
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf5340dk_nrf5340_cpuapp lighting-app \
                    examples/lighting-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lock App on nRF7002 PDK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lock-app nrf7002dk/nrf5340/cpuapp
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf7002dk_nrf5340_cpuapp lock-app \
                    examples/lock-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Light Switch App on nRF7002 PDK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh light-switch-app nrf7002dk/nrf5340/cpuapp
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf7002dk_nrf5340_cpuapp light-switch-app \
                    examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK Lighting App on nRF7002 PDK
              if: github.event_name == 'push' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/examples/nrfconnect_example.sh lighting-app nrf7002dk/nrf5340/cpuapp
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf7002dk_nrf5340_cpuapp lighting-app \
                    examples/light-switch-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Build example nRF Connect SDK All Clusters App on nRF7002 PDK
              run: |
                  scripts/examples/nrfconnect_example.sh all-clusters-app nrf7002dk/nrf5340/cpuapp -DFILE_SUFFIX=release
                  .environment/pigweed-venv/bin/python3 scripts/tools/memory/gh_sizes.py \
                    nrfconnect nrf7002dk_nrf5340_cpuapp all-clusters-app \
                    examples/all-clusters-app/nrfconnect/build/nrfconnect/zephyr/zephyr.elf \
                    /tmp/bloat_reports/
            - name: Run unit tests for Zephyr native_posix_64 platform
              if: github.event_name == 'push' || steps.changed_paths.outputs.tests == 'true' || steps.changed_paths.outputs.nrfconnect == 'true'
              run: |
                  scripts/run_in_build_env.sh "./scripts/build/build_examples.py --target nrf-native-posix-64-tests build"
            - name: Uploading Failed Test Logs
              uses: actions/upload-artifact@v4
              if: ${{ failure() && !env.ACT }}
              with:
                  name: test-log
                  path: |
                      src/test_driver/nrfconnect/build/Testing/Temporary/LastTest.log

            - name: Uploading Size Reports
              uses: ./.github/actions/upload-size-reports
              if: ${{ !env.ACT }}
              with:
                platform-name: nRFConnect
