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/clang-format-lint-action@v0.18
      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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions