Paddle
Paddle copied to clipboard
【Hackathon 6th Fundable Projects 2】 clang-tidy-ci 配置
PR Category
Inference
PR Types
Improvements
Description
增加 clang-tidy 的 ci。
相关链接: https://github.com/PaddlePaddle/Paddle/issues/54073
你的PR提交成功,感谢你对开源项目的贡献! 请关注后续CI自动化测试结果,详情请参考Paddle-CI手册。 Your PR has been submitted. Thanks for your contribution! Please wait for the result of CI firstly. See Paddle CI Manual for details.
修改 8 个文件时间为 10s。具体见流水线https://xly.bce.baidu.com/paddlepaddle/paddle/newipipe/detail/10709129/job/26258570
流水线截图显示的是1个文件 10s?目前是成功的截图,有失败拦截住的截图么?
Sorry to inform you that f95b662's CIs have passed for more than 7 days. To prevent PR conflicts, you need to re-run all CIs manually.
> 修改 8 个文件时间为 10s 流水线截图显示的是1个文件 10s?目前是成功的截图,有失败拦截住的截图么?
现在已经无所谓修复具体文件个数了,因为每次都是全量检测。
Sorry to inform you that 467bd0f's CIs have passed for more than 7 days. To prevent PR conflicts, you need to re-run all CIs manually.
最近通过阅读代码发现全量检测的 python clang-tidy.py 命令执行相应的 python 脚本过程中对 clang-tidy 本体的使用也是基于单个文件依次检测的。因而对于增量检测而言,基于原先使用 git diff 命令可以获取当前分支修改总文件列表,可以考虑修改 clang-tidy.py 脚本,使之支持对当前 PR 中修改的 C++ 系列文件进行单独检测。
目前实现进度为 paddle_build.sh 脚本中将修改的 C++ 系列文件含文件路径写入约定的 ./tools/codestyle/diff_files.txt 文件中,更新 clang-tidy.py,不再由原先的待检测文件路径正则表达式匹配,而是由 clang-tidy.py 脚本读取该 txt 文件获取需要修改的文件,加入到待检测队列(即 clang-tidy.py 中的 task_queue 变量),其余部分均不变。
现在的问题是仅修改 clang-tidy.py 后流水线无法按照原先全量检测运行,没有提示任何错误而直接返回编译错误终止了流水线,因而无法针对 clang-tidy 的检测项进行错误修改。正在解决该问题中。
2024-09-18 19:55:33 paddle/scripts/paddle_build.sh: line 1116: 296 - : syntax error: operand expected (error token is "- ")可以先看下CE-framework流水线,看上去脚本有语法错误
但这个地方我没动过,不知道是谁写的
comment by @walkalone20 :现在的方法是每次都做全量检测所有的检测箱都检测,但最后是根据clang-tidy的输出log来判断要不要拦截的,目前是直接在paddle_build.sh的clang-tidy-check函数中的S字符串数组选取若干个检测项进行拦截处理。clang-tidy目前是202个检测项,开启了162个,剩余40个由于存在部分修复完成但后续合入代码的错误导致可能需要再次开启修复过程。拦截的PR:https://github.com/PaddlePaddle/Paddle/pull/64210
当前拦截在paddle-build流水线:https://xly.bce.baidu.com/paddlepaddle/paddle/newipipe/detail/11805911/job/27909515
-
时间比较长:要1个多小时,辛苦看下Pytorch是如何处理的
-
日志需要定位到具体错在哪个文件,且去除不必要的部分。类似
> 修改 8 个文件时间为 10s
流水线截图显示的是1个文件 10s?目前是成功的截图,有失败拦截住的截图么?