tools: add clang-format formatting script for CI#10684
tools: add clang-format formatting script for CI#10684Rbb666 merged 2 commits intoRT-Thread:masterfrom
Conversation
📌 Code Review Assignment🏷️ Tag: workflowReviewers: Rbb666 kurisaW supperthomas Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2025-09-23 17:36 CST)
📝 Review Instructions
|
|
@Ryan-CW-Code 大佬也可以一起帮忙看下 |
|
要不要增加一个clang-format检查active,发现格式不匹配的时候再提示使用这个一键格式化脚本? |
|
检查脚本应该默认有一个了,其实pr里默认就是只会有一个评论,然后引导用户在自己的仓库下选择是否运行workflow,更多希望是能给贡献者带来代码检查的意识 另外对于不需要格式化的文件或目录,在workflow里已经给出配置项了,然后在执行clang format之前就删除掉希望排除的文件或目录,如果用clang的参数,那就可能还涉及到备份.clang-format,然后再插入参数,这反而是复杂化需求了 |
|
我想的是主仓库一个默认的 |
|
这个建议很好,是需要这个机制的,有些厂商的源码不应该被格式化 |
|
目前已有的检查脚本只检查个别格式,不会对clang-format进行校验,可以在现在这个脚本前加一个 |
|
感谢反馈,明天我再完善下 |
|
感谢你的工作! 这种对齐方式在我看来很别扭。 代码的规范还需要您们再完善一下 documentation/7.contribution/coding_style_cn.md |
|
|
对这样是可以,主要是我不清除您们那边的规范,也就不敢随意修改clang-format的配置 |
其实我们在代码格式化这块做的也不够完善,格式化标准还需要进一步扩展详细说明,当然格式化工具引入后,也希望大家多多反馈格式化问题,以便我们进一步优化 |
|
@Ryan-CW-Code 这里提供了一个版本,两套机制来控制排除格式化构建:
这两套机制会分别走一次,最终将真正需要格式化的文件列出并进行格式化:
但是这里还存在一个问题,由于workflow是手动触发的,他并不具备PR的上下文,也就是说,他只能获取到最近一次commit的PR文件的全部变更信息,也就是说提交一次commit最好就触发一次workflow,这个机制可能还需要再研究看看 |
|
同步一下
|
5f7356d to
4b5f246
Compare
|
总结一下:
|



拉取/合并请求描述:(PR description)
[
Fixed: #10391
1.新增GitHub action评论脚本:pr-notify.yml,后续如有评论需求可在此基础上扩展
2.新增clang-format脚本,目前主要功能就是:当PR推送到主线,会自动触发一个评论,引导用户到自己的仓库下运行workflow,只需要一键配置排除文件或路径,以及贡献PR的分支,就可以一键运行format脚本,格式化完成后会自动追加一笔commit到当前PR下
clang-format.yml脚本功能:
格式化情况如下:
下面是一个实际运行效果:
为什么提交这份PR (why to submit this PR)
你的解决方案是什么 (what is your solution)
请提供验证的bsp和config (provide the config and bsp)
kurisaW/code-format@4ff4f7d
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up