# 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 - i.MX Linux

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:
    imx:
        name: Linux i.MX Build
        timeout-minutes: 70

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

        container:
            image: connectedhomeip/chip-build-imx:0.6.06

        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 linux

            - name: Build App
              timeout-minutes: 30
              run: |
                  ./scripts/examples/imxlinux_example.sh \
                  examples/lighting-app/linux/ examples/lighting-app/linux/out/aarch64
            - name: Clean out build output
              run: rm -rf ./out
            - name: Build chip-tool
              timeout-minutes: 30
              run: |
                  ./scripts/examples/imxlinux_example.sh \
                  examples/chip-tool examples/chip-tool/out/aarch64
            - name: Clean out build output
              run: rm -rf ./out
            - name: Build thermostat
              timeout-minutes: 30
              run: |
                  ./scripts/run_in_build_env.sh \
                     "./scripts/build/build_examples.py \
                        --target imx-thermostat build \
                     "
            - name: Clean out build output
              run: rm -rf ./out
            - name: Build all-cluster
              timeout-minutes: 30
              run: |
                  ./scripts/run_in_build_env.sh \
                     "./scripts/build/build_examples.py \
                         --target imx-all-clusters-app build \
                     "
            - name: Clean out build output
              run: rm -rf ./out
            - name: Build all-cluster-minimal
              timeout-minutes: 30
              run: |
                  ./scripts/run_in_build_env.sh \
                     "./scripts/build/build_examples.py \
                         --target imx-all-clusters-minimal-app build \
                     "
            - name: Clean out build output
              run: rm -rf ./out
            - name: Build ota-provider-app
              timeout-minutes: 30
              run: |
                  ./scripts/run_in_build_env.sh \
                     "./scripts/build/build_examples.py \
                         --target imx-ota-provider-app build
                     "
            - name: Clean out build output
              run: rm -rf ./out
