name: clang-format on: # Trigger the workflow on push or pull request, # but only for the main branch push: branches: - main paths: - '**/*.h' - '**/*.cpp' - '**/*.cu' - '**/*.cuh' - '.github/workflows/clang-format.yml' pull_request: branches: - main paths: - '**/*.h' - '**/*.cpp' - '**/*.cu' - '**/*.cuh' - '.github/workflows/clang-format.yml' jobs: clang-format: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.11"] steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install clang-format==18.1.5 - name: Running clang-format run: | EXCLUDES=( 'csrc/moe/topk_softmax_kernels.cu' 'csrc/quantization/gguf/ggml-common.h' 'csrc/quantization/gguf/dequantize.cuh' 'csrc/quantization/gguf/vecdotq.cuh' 'csrc/quantization/gguf/mmq.cuh' 'csrc/quantization/gguf/mmvq.cuh' ) find csrc/ \( -name '*.h' -o -name '*.cpp' -o -name '*.cu' -o -name '*.cuh' \) -print \ | grep -vFf <(printf "%s\n" "${EXCLUDES[@]}") \ | xargs clang-format --dry-run --Werror