使用 Qodana 在 GitHub 上运行代码质量检查
来源:华佗健康网
本文将介绍如何在 GitHub 上设置并运行 Qodana 进行代码质量检查的完整步骤。通过本文,你可以快速配置 GitHub Actions 工作流,并了解如何解决常见的配置报错问题。
一、前置准备
二、添加 Qodana 到 GitHub Actions
1. 创建工作流文件
- 在项目的
.github/workflows
目录下创建一个新的 YAML 文件,命名为code_quality.yml
。 - 在
code_quality.yml
文件中添加以下内容:
name: Qodana
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
- master
- 'releases/*'
jobs:
qodana:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
checks: write
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2024.3
env:
QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
2. 提交更改
- 保存并提交文件到你的仓库:
git add .github/workflows/code_quality.yml git commit -m "Add Qodana workflow for code quality checks" git push origin main
- 打开 GitHub 仓库页面,进入 Actions 选项卡,确认新的工作流是否已经出现。
三、运行工作流
1. 手动触发
- 进入 GitHub 仓库的 Actions 页面,找到
Qodana
工作流。 - 点击 Run workflow,选择触发的分支。
2. 自动触发
- 每当推送到
main
、master
或releases/*
分支时,工作流将自动运行。
四、解决常见报错
1. “No valid linter
or ide
field found in qodana.yaml”
- 原因:项目中缺少
.qodana.yaml
配置文件。 - 解决方法:在项目根目录添加一个
.qodana.yaml
文件。
示例配置:
linter: jetbrains/qodana-jvm # 根据你的项目类型选择合适的 linter
checkDir: .
2. “No CMAKE_C_COMPILER could be found”
- 原因:CMake 无法找到 C/C++ 编译器。
- 解决方法:
- 确保你的系统已安装 MinGW、MSYS2 或 Visual Studio,并将其路径添加到环境变量。
- 手动指定编译器路径:
cmake -DCMAKE_C_COMPILER=<path-to-gcc> -DCMAKE_CXX_COMPILER=<path-to-g++> -G "Ninja" ..
3. “No such file or directory: compile_commands.json”
- 原因:Qodana 无法找到
compile_commands.json
文件。 - 解决方法:
- 运行以下命令生成文件:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G "Ninja" ..
- 运行以下命令生成文件:
五、后续工作
后续如果运行报错,建议参考 Qodana 的官方文档或将日志文件中的具体错误信息进行分析。本博客中的后半部分会进一步讨论如何解决 Qodana 的报错问题,包括环境变量设置、编译器安装等。
因篇幅问题不能全部显示,请点此查看更多更全内容