# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners
name: format

on:
  push:
    branches:
      - 'main'
      - 'releases/**'
    tags:
      - '2.*'
  pull_request:

permissions:
  contents: read

jobs:
  build:

    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@v3

      - name: Cache uncrustify
        uses: actions/cache@v3
        id: cache-uncrustify
        with:
          path: |
            ~/uncrustify
          key: ${{ runner.os }}-uncrustify

      - name: build uncrustify
        if: steps.cache-uncrustify.outputs.cache-hit != 'true'
        run: |
          wget https://github.com/uncrustify/uncrustify/archive/refs/tags/uncrustify-0.72.0.tar.gz
          tar xzvf uncrustify-0.72.0.tar.gz && cd uncrustify-uncrustify-0.72.0 
          cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
          cmake --build build -- -j$(nproc) -s
          mkdir ~/uncrustify 
          cd build && cp uncrustify ~/uncrustify/

      - name: Uncrustify check
        run: |
          ~/uncrustify/uncrustify -c .uncrustify.cfg -l CPP --no-backup --replace */*.cpp */*.h
          git diff
          git diff | diff - /dev/null &> /dev/null
