diff --git a/.github/workflows/static.check.yml b/.github/workflows/static.check.yml index c6702d92c3..32b09391b8 100644 --- a/.github/workflows/static.check.yml +++ b/.github/workflows/static.check.yml @@ -10,25 +10,15 @@ jobs: runs-on: ubuntu-latest name: Static checks steps: - - uses: actions/checkout@v4 + - name: Preparing step 1... + uses: actions/checkout@v4 with: - fetch-depth: 5 - - name: Get changed files - id: changed-files - uses: tj-actions/changed-files@v41 - with: - since_last_remote_commit: true - - name: List all files changed - env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} - run: | - for file in "$ALL_CHANGED_FILES"; do - echo "$file was changed" - done - - name: Run clang-format for cc/hh/hpp/cpp files - env: - ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }} + 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 }} run: | sudo apt update && sudo apt-get install clang-format echo "Check .clang-format file" @@ -36,7 +26,13 @@ jobs: echo ".clang-format file not found" exit 1 fi - for file in "$ALL_CHANGED_FILES"; do + git log -5 + echo ${{ github.event.pull_request.commits }} + 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} @@ -47,7 +43,7 @@ jobs: git diff -- *.cc *.hh *.hpp *.cpp > .ci.clang-format.patch SIZE=$(stat -c%s .ci.clang-format.patch) if [[ $SIZE -ne 0 ]]; then - echo "clang-format shows that the commit has style errors." + echo "::error clang-format has found style errors in C++ files." cat .ci.clang-format.patch exit 1 fi