Skip to content

建议:在 GitHub Actions 中添加 clang-format 代码格式检查 #632

@Zhendong404

Description

@Zhendong404

背景

当前 PTOAS 项目中不同开发者的代码风格存在差异(缩进、空格、换行等),代码审查时需要人工关注格式问题,既低效也容易遗漏。建议在 CI 流程中引入自动化的 clang-format 格式检查,确保所有 PR 提交的代码符合统一的编码风格。

建议方案

在 GitHub Actions 中添加一个 clang-format check job,大致流程如下:

  1. 在项目根目录下添加一个 .clang-format 配置文件,定义统一的代码风格(建议基于 LLVM 或 Google 风格,根据项目偏好微调)。
  2. 新增一个 GitHub Actions workflow(例如 .github/workflows/clang-format.yml),在每次 push 和 PR 时运行:
    • 使用 actions/checkout 检出代码
    • 安装 clang-format(可用 apt install clang-format
    • src/include/lib/ 等目录下的 *.cpp、*.h、*.hpp 文件运行 clang-format 检查
    • 若文件未格式化,workflow 失败并提示具体哪些文件需要修正

示例 workflow:

name: clang-format check
on: [push, pull_request]

jobs:
  formatting-check:
    name: Formatting Check
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: DoozyX/[email protected]
      with:
        source: .
        extensions: cpp,h,hpp
        clangFormatVersion: 18
        inplace: True

预期收益

  • 自动化:PR 提交时自动检查,无需人工逐行 review 格式
  • 一致性:所有贡献者的代码风格统一,降低阅读成本
  • 低门槛:开发者只需在本地运行 clang-format -i <file> 即可修复格式问题
  • 可定制.clang-format 可随项目演进逐步调整

讨论

  1. 代码风格偏好:LLVM / Google / Chromium / 自定义?
  2. 是否需要先初始化一个 .clang-format 配置文件?
  3. 是否建议在开发流程中加入 pre-commit hook 自动格式化?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions