name: pre-commit

on:
  workflow_dispatch:
  push:
  pull_request:
    branches: [ master ]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - name: Setup Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: '3.0'

    - name: Checkout TinyUSB
      uses: actions/checkout@v4

    - name: Get Dependencies
      run: |
        gem install ceedling
        #cd test/unit-test
        #ceedling test:all

    - name: Run pre-commit
      uses: pre-commit/action@v3.0.1

    - name: Build Fuzzer
      run: |
        sudo apt install libc++-dev libc++abi-dev
        clang --version
        export CC=clang
        export CXX=clang++
        fuzz_harness=$(ls -d test/fuzz/device/*/)
        for h in $fuzz_harness
        do
          make -C $h get-deps
          make -C $h all
        done
