您的当前位置:首页正文

使用 Qodana 在 GitHub 上运行代码质量检查

来源:华佗健康网

本文将介绍如何在 GitHub 上设置并运行 Qodana 进行代码质量检查的完整步骤。通过本文,你可以快速配置 GitHub Actions 工作流,并了解如何解决常见的配置报错问题。


一、前置准备


二、添加 Qodana 到 GitHub Actions

1. 创建工作流文件

  1. 在项目的 .github/workflows 目录下创建一个新的 YAML 文件,命名为 code_quality.yml
  2. 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. 提交更改

  1. 保存并提交文件到你的仓库:
    git add .github/workflows/code_quality.yml
    git commit -m "Add Qodana workflow for code quality checks"
    git push origin main
    
  2. 打开 GitHub 仓库页面,进入 Actions 选项卡,确认新的工作流是否已经出现。

三、运行工作流

1. 手动触发

  • 进入 GitHub 仓库的 Actions 页面,找到 Qodana 工作流。
  • 点击 Run workflow,选择触发的分支。

2. 自动触发

  • 每当推送到 mainmasterreleases/* 分支时,工作流将自动运行。

四、解决常见报错

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 的报错问题,包括环境变量设置、编译器安装等。

因篇幅问题不能全部显示,请点此查看更多更全内容