You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Github Actions中执行Flutter Web项目SonarQube扫描遇错求助

解决Github Actions中SonarQube扫描Flutter Web时找不到flutter命令的问题

问题根源

你遇到的错误核心是SonarQube执行flutter analyze时找不到flutter命令,罪魁祸首是工作流里重复执行的actions/checkout步骤:第二次checkout会重置工作目录,同时可能导致Flutter环境的PATH配置失效,直接破坏了之前的环境准备。

修复方案

1. 优化工作流步骤,移除重复checkout

把第一次actions/checkout设置为拉取完整仓库历史(fetch-depth: 0),删掉第二次重复的checkout操作,确保Flutter环境和依赖不会被重置:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions :
      contents: read
      packages : write
      id-token : write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0  # 拉取所有提交历史,满足SonarQube代码分析需求
      - uses: subosito/flutter-action@v2
        with:
          flutter-version: '3.19.4'
          channel: 'stable'
      - run: flutter pub get
      - run: flutter build web --release
      - uses: sonarsource/sonarqube-scan-action@v2.2.0  # 指定稳定版本,避免master分支的不稳定问题
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}

2. 验证Flutter环境(可选排查步骤)

如果问题仍存在,可在Sonar扫描步骤前加一条验证命令,确认flutter命令是否可用:

- run: flutter --version  # 打印Flutter版本,验证环境是否正常加载

3. 检查SonarQube插件兼容性

确保你的SonarQube服务器已安装Flutter插件,且插件版本与你使用的Flutter 3.19.4兼容。插件版本不匹配也可能导致命令执行失败。

补充说明

SonarQube的Flutter插件依赖flutter analyze的输出做代码质量扫描,所以必须保证扫描步骤能正常调用flutter命令。优化后的工作流确保了Flutter环境在整个job中持续有效,同时满足SonarQube对仓库历史的需求。

内容的提问来源于stack exchange,提问作者LiiOr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:17:41