File tree 2 files changed +33
-1
lines changed
2 files changed +33
-1
lines changed Original file line number Diff line number Diff line change 27
27
steps :
28
28
- uses : actions/checkout@v4
29
29
- name : Set up Python
30
- uses : actions/setup-python@v3
30
+ uses : actions/setup-python@main
31
31
with :
32
32
python-version : 3.8
33
33
Original file line number Diff line number Diff line change 6
6
# Change Logs:
7
7
# Date Author Notes
8
8
# 2023-05-16 dejavudwh the first version
9
+ # 2024-09-12 supperthomas add cppcheck summary for detail
9
10
#
10
11
11
12
import click
12
13
import logging
13
14
import subprocess
14
15
import sys
15
16
import format_ignore
17
+ import os
18
+ '''
19
+ --suppress=syntaxError:
20
+ 该选项用于抑制特定的错误类型。在这里,syntaxError 是被忽略的错误类型。这意味着 Cppcheck 不会报告语法错误(syntaxError)。这是因为在某些情况下,分析工具可能会误报语法错误,但 CI(持续集成)系统会在编译时捕获这些错误,因此可以忽略。
16
21
22
+ --enable=warning:
23
+ 该选项用于启用特定类型的检查。Cppcheck 可以检查不同的级别和种类的问题,如错误、警告、性能问题等。--enable=warning 启用的是警告级别的检查,帮助检测代码中可能存在的问题,但不是严重的错误。
24
+
25
+ performance:
26
+ Cppcheck 可以启用多个检查种类,在这里指定了 performance,意味着会检查与代码性能相关的潜在问题,例如不必要的拷贝操作、无效的条件判断等。这有助于提高代码的运行效率。
27
+
28
+ portability:
29
+ Cppcheck 会检查代码的可移植性问题。可移植性检查帮助发现代码在不同平台或编译器中可能遇到的问题,如特定平台上不支持的类型、函数或特性。这对跨平台开发非常重要。
30
+
31
+ --inline-suppr:
32
+ 该选项允许在代码中使用注释来抑制特定的警告或错误信息。通过这种方式,开发者可以直接在代码中添加注释,告诉 Cppcheck 忽略某些检查或警告。例如,开发者可以在代码中添加 // cppcheck-suppress <message> 来抑制特定的警告信息。
33
+
34
+ --error-exitcode=1:
35
+ 该选项告诉 Cppcheck 如果遇到错误,就返回指定的退出码。在这里指定的是 1。这对自动化工具非常有用,尤其是在 CI 环境中,因为它可以通过检查返回码来判断 Cppcheck 是否发现了错误。如果有错误,CI 系统会将整个任务标记为失败。
36
+
37
+ --force:
38
+ 这个选项强制 Cppcheck 对所有文件进行检查,即使它检测到编译条件缺失或某些配置问题。通常,如果某些宏定义或依赖项缺失,Cppcheck 可能会跳过某些文件的检查。但 --force 会强制工具继续执行分析,即使有可能缺少某些信息。这在某些大型项目中很有用,可以确保所有文件都经过检查。
39
+ '''
40
+ def add_summary (text ):
41
+ """
42
+ add summary to github action.
43
+ """
44
+ os .system (f'echo "{ text } " >> $GITHUB_STEP_SUMMARY ;' )
45
+
17
46
class CPPCheck :
18
47
def __init__ (self , file_list ):
19
48
self .file_list = file_list
@@ -46,6 +75,9 @@ def check(self):
46
75
logging .info (result .stdout .decode ())
47
76
logging .info (result .stderr .decode ())
48
77
if result .stderr :
78
+ add_summary ("The following errors are for reference only. If they are not actual issues, please ignore them and do not make unnecessary modifications." )
79
+ add_summary ("以下错误仅供参考,如果发现没有问题,请直接忽略,不需要强行修改" )
80
+ add_summary (f"- :rotating_light: { result .stderr .decode ()} " )
49
81
check_result = False
50
82
return check_result
51
83
You can’t perform that action at this time.
0 commit comments