From 24e9e538184b13f3dab0c6903b486a5b0d903094 Mon Sep 17 00:00:00 2001 From: ShaoHua <345265198@qq.com> Date: Tue, 2 Dec 2025 03:41:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20.gitea/workflows/sonar-sca?= =?UTF-8?q?n.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/sonar-scan.yml | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .gitea/workflows/sonar-scan.yml diff --git a/.gitea/workflows/sonar-scan.yml b/.gitea/workflows/sonar-scan.yml new file mode 100644 index 0000000..0e35db1 --- /dev/null +++ b/.gitea/workflows/sonar-scan.yml @@ -0,0 +1,55 @@ +name: SonarQube Code Quality Scan +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main ] +jobs: + scan: + runs-on: windows-latest + steps: + # 步骤1:拉取仓库代码(完整历史) + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + # 步骤2:配置 Sonar Scanner 路径(必做,替换为你的实际路径) + - name: Add Sonar Scanner to PATH + run: | + $scannerPath = "D:\Paths\sonar-scanner-cli\bin" # 替换为你的 Scanner bin 目录 + echo "$scannerPath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 + + # 步骤3:安装 .NET SDK(C# 项目编译依赖,根据你的项目版本调整) + - name: Setup .NET SDK + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.0.x # 替换为你的项目对应的 .NET 版本(如 3.1.x、5.0.x、7.0.x) + + # 步骤4:编译 C# 项目(生成 SonarQube 所需的二进制文件和覆盖率报告) + - name: Build .NET Project + run: | + dotnet restore # 还原依赖包 + dotnet build --configuration Release # 编译项目(Release 模式,确保生成完整二进制文件) + + # 步骤5:执行 SonarQube 扫描(C# 专属配置) + - name: Run SonarQube Scan + run: | + sonar-scanner ` + -Dsonar.projectKey=sqp_4bae541a7a6ccfd4ebae43150ce5b8b5c1c34c50 ` # 你的 SonarQube 项目密钥 + -Dsonar.sources=./ ` # 代码根目录(C# 项目通常无需修改) + -Dsonar.host.url=http://127.0.0.1:9000 ` # SonarQube 地址(非本地需改局域网 IP) + -Dsonar.login=${{ secrets.SONAR_TOKEN }} ` # 引用 Gitea Secrets 令牌 + -Dsonar.language=csharp ` # 强制指定语言为 C#(避免自动识别错误) + -Dsonar.dotnet.build.directory=./**/bin/Release ` # 指定 .NET 编译输出目录(匹配步骤4的 Release 模式) + -Dsonar.exclusions=**/obj/**,**/bin/Debug/** ` # 排除无需扫描的目录(编译临时文件、Debug 目录) + -Dsonar.coverage.exclusions=**/Test/**,**/*.Tests.cs # 排除测试代码目录(按需调整) + sonar-scanner ` + -Dsonar.projectKey=sqp_4bae541a7a6ccfd4ebae43150ce5b8b5c1c34c50 ` # 你的 SonarQube 项目密钥 + -Dsonar.sources=./ ` # 代码根目录(C# 项目通常无需修改) + -Dsonar.host.url=http://127.0.0.1:9000 ` # SonarQube 地址(非本地需改局域网 IP) + -Dsonar.login=${{ secrets.SONAR_TOKEN }} ` # 引用 Gitea Secrets 令牌 + -Dsonar.language=csharp ` # 强制指定语言为 C#(避免自动识别错误) + -Dsonar.dotnet.build.directory=./**/bin/Release ` # 指定 .NET 编译输出目录(匹配步骤4的 Release 模式) + -Dsonar.exclusions=**/obj/**,**/bin/Debug/** ` # 排除无需扫描的目录(编译临时文件、Debug 目录) + -Dsonar.coverage.exclusions=**/Test/**,**/*.Tests.cs # 排除测试代码目录(按需调整) \ No newline at end of file