name: 'Lint C/C++ with clang-format'

on:
  push:
    branches:
      - dev
      - "release*"
    tags:
      - '*'
  pull_request:

env:
  TARGETS: f7
  FBT_TOOLCHAIN_PATH: /runner/_work
  SET_GH_OUTPUT: 1

jobs:
  lint_c_cpp:
    runs-on: [self-hosted,FlipperZeroShell]
    steps:
      - name: 'Decontaminate previous build leftovers'
        run: |
          if [ -d .git ]; then
            git submodule status || git checkout "$(git rev-list --max-parents=0 HEAD | tail -n 1)"
          fi

      - name: 'Checkout code'
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.sha }}

      - name: 'Check code formatting'
        id: syntax_check
        run: ./fbt lint

      - name: Report code formatting errors
        if: failure() && steps.syntax_check.outputs.errors && github.event.pull_request
        uses: peter-evans/create-or-update-comment@v1
        with:
          issue-number: ${{ github.event.pull_request.number }}
          body: |
            Please fix following code formatting errors:
            ```
            ${{ steps.syntax_check.outputs.errors }}
            ```
            You might want to run `./fbt format` for an auto-fix.
