# 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: ZAP

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:
    zap_templates:
        name: ZAP templates generation
        timeout-minutes: 90

        runs-on: ubuntu-20.04
        container:
            image: connectedhomeip/chip-build:0.6.15
        defaults:
            run:
                shell: sh
        if: github.actor != 'restyled-io[bot]'

        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: Generate all
              run: scripts/tools/zap_regen_all.py
            - name: Ensure git works in current working directory
              run: git config --global --add safe.directory `pwd`
            - name: Check for uncommited changes
              run: |
                  git add .
                  # Show the full diff
                  git diff-index -p HEAD --
                  # Also show just the files that are different, to make it easy
                  # to tell at a glance what might be going on.  And throw in
                  # --exit-code to make this job fail if there is a difference.
                  git diff-index --exit-code HEAD --
