| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You 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: CH Backend Code style checks |
| |
| on: |
| pull_request: |
| paths: |
| - 'cpp-ch/**' |
| |
| concurrency: |
| group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} |
| cancel-in-progress: true |
| |
| jobs: |
| ch-formatting-check: |
| name: CH Formatting Check |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| path: |
| - check: 'cpp-ch' |
| exclude: '' |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Run clang-format style check for C/C++ programs. |
| uses: jidicula/clang-format-action@v4.11.0 |
| with: |
| clang-format-version: '15' |
| check-path: ${{ matrix.path['check'] }} |
| fallback-style: 'Google' # optional |
| include-regex: '.*\.\(c\|cpp\|h\)' |
| |
| ch-CMake-format-check: |
| name: CH CMake Format Check |
| runs-on: ubuntu-latest |
| container: ubuntu:22.04 |
| steps: |
| - name: Install tools |
| run: | |
| apt update -y |
| apt install git python3-pip -y |
| pip3 install --user cmake-format |
| echo "$HOME/.local/bin" >> "$GITHUB_PATH" |
| - uses: actions/checkout@v4 |
| - name: Check CMake format |
| run: | |
| git config --global --add safe.directory $GITHUB_WORKSPACE |
| cd $GITHUB_WORKSPACE/ |
| fileList=$(find ./cpp ./cpp-ch -name CMakeLists.txt -o -name *.cmake) |
| for file in $fileList; do |
| cmake-format --first-comment-is-literal True --in-place $file |
| done |
| if [ -n "$(git status --porcelain)" ]; then |
| echo "Please use cmake-format to format cmake files or apply the below patch." |
| git diff -- '*CMakeLists.txt' '*.cmake' |
| exit 1 |
| fi |
| echo "No CMake format issue." |