@@ -31,37 +31,33 @@ jobs:
31
31
run : git fetch origin ${{ github.base_ref }}
32
32
shell : bash
33
33
34
- - name : Get changed files
35
- id : changed-files
34
+ - name : Get changed files (existing files only)
35
+ id : get- changed-files
36
36
run : |
37
- git diff --name-only "origin/${{ github.base_ref }}"...HEAD > changed_files.txt
38
- cat changed_files.txt
37
+ echo "changed-files=$(git diff --name-only "origin/${{ github.base_ref }}"...HEAD | grep -E '\.(cpp|hpp)$' | while read -r file; do [ -e "$file" ] && echo -n "$file "; done)" >> $GITHUB_OUTPUT
39
38
shell : bash
40
39
41
40
- name : Run Cppcheck on changed files
41
+ if : ${{ steps.get-changed-files.outputs.changed-files != '' }}
42
42
continue-on-error : true
43
43
id : cppcheck
44
44
run : |
45
- files=$(cat changed_files.txt | grep -E '\.(cpp|hpp)$' || true)
46
- if [ -n "$files" ]; then
47
- echo "Running Cppcheck on changed files: $files"
48
- cppcheck --enable=all --inconclusive --check-level=exhaustive --error-exitcode=1 --suppressions-list=.cppcheck_suppressions $files 2> cppcheck-report.txt
49
- else
50
- echo "No C++ files changed."
51
- touch cppcheck-report.txt
52
- fi
45
+ echo "Running Cppcheck on changed files: ${{ steps.get-changed-files.outputs.changed-files }}"
46
+ cppcheck --enable=all --inconclusive --check-level=exhaustive --error-exitcode=1 --suppressions-list=.cppcheck_suppressions ${{ steps.get-changed-files.outputs.changed-files }} 2> cppcheck-report.txt
53
47
shell : bash
54
48
55
49
- name : Show cppcheck-report result
50
+ if : ${{ steps.get-changed-files.outputs.changed-files != '' }}
56
51
run : |
57
52
cat cppcheck-report.txt
58
53
59
54
- name : Upload Cppcheck report
55
+ if : ${{ steps.get-changed-files.outputs.changed-files != '' }}
60
56
uses : actions/upload-artifact@v2
61
57
with :
62
58
name : cppcheck-report
63
59
path : cppcheck-report.txt
64
60
65
61
- name : Fail the job if Cppcheck failed
66
- if : steps.cppcheck.outcome == 'failure'
62
+ if : ${{ steps.get-changed-files.outputs.changed-files != '' && steps. cppcheck.outcome == 'failure' }}
67
63
run : exit 1
0 commit comments