github/actions/static: clean up clang-format checker #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Static checkers and verifiers | |
on: | |
pull_request: | |
branches: [ main ] | |
push: | |
jobs: | |
simple_script_checkers: | |
runs-on: ubuntu-latest | |
name: Static checks | |
steps: | |
- name: Preparing step 1... | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: /Checker/ clang-format for .cc/.hh/.hpp/.cpp files | |
shell: bash | |
env: | |
BEFORE_REF: ${{ github.event.before }} | |
AFTER_REF: ${{ github.event.after }} | |
REFS: ${{ github.event.pull_request.commits }} | |
run: | | |
sudo apt update && sudo apt-get install clang-format | |
echo "Check .clang-format file" | |
if [ ! -f ".clang-format" ]; then | |
echo ".clang-format file not found" | |
exit 1 | |
fi | |
echo "----" | |
echo "$REFS" | |
echo "----" | |
git log -5 | |
echo "----" | |
git show --pretty="format:" --name-only --diff-filter=AMRC "$BEFORE_REF...$AFTER_REF" | sort | uniq | grep '.' > changed.files | |
for file in `cat changed.files`; do | |
echo "$file was changed" | |
done | |
for file in `cat changed.files`; do | |
if [[ "$file" =~ .*\.hh$ ]] || [[ "$file" =~ .*\.hpp ]] || [[ "$file" =~ .*\.cc$ ]] || [[ "$file" =~ .*\.cpp ]]; then | |
echo "$file appears to be a C++ file. Applying clang-format" | |
clang-format -i ${file} | |
else | |
echo "$file appears not to be C++ file. skipping clang-format" | |
fi | |
done | |
git diff -- *.cc *.hh *.hpp *.cpp > .ci.clang-format.patch | |
SIZE=$(stat -c%s .ci.clang-format.patch) | |
if [[ $SIZE -ne 0 ]]; then | |
echo "::error clang-format has found style errors in C++ files." | |
cat .ci.clang-format.patch | |
exit 1 | |
fi | |
echo "clang-format shows no style errors." |