Net core 和 github 操作。我在 Github actions 中运行了管道,并且集成了 Sonarqube。我的要求是,如果代码覆盖率小于 70 或任何指定的数字,那么我们不应允许继续构建过程。构建应该到此为止。所以我当前的代码是
SonarQube_API:
runs-on: windows-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Java for Sonar
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Get SonarQube
shell: pwsh
run: dotnet tool install --global dotnet-sonarscanner
- name: Get Coverlet.MSBuild
shell: pwsh
run: dotnet add package coverlet.msbuild
working-directory: '.\JK.Test'
- name: .NET sonarscanner begin
shell: pwsh
run: |
dotnet sonarscanner begin `
/k:"JK-Api" `
/d:sonar.host.url="${{ secrets.MDN_SONARQUBE_HOST }}" `
/d:sonar.login="${{ secrets.MDN_SONARQUBE_TOKEN }}" `
/d:sonar.cs.opencover.reportsPaths=".\JK.Test\coverage.opencover.xml" `
/v:"1.0"
- name: build
shell: pwsh
run: |
dotnet restore JK.Test/JK.Test.csproj
dotnet build JK.Test/JK.Test.csproj --configuration '${{ env.BUILD_CONFIG }}' --no-restore
- name: dotnet test
shell: pwsh
run: |
dotnet test ".\JK.Test\JK.Test.csproj" `
--configuration Release `
--results-directory "${{ github.workspace }}\TestResults" `
/p:CollectCoverage=true `
env:
CollectCoverage: true
CoverletOutputFormat: opencover
- name: .NET sonarscanner end
shell: pwsh
run: dotnet sonarscanner end /d:sonar.login="${{ secrets.MDN_SONARQUBE_TOKEN }}"
我无法获得满足我的要求的任何信息。我的要求是,如果代码覆盖率低于 70%,那么我希望构建失败,或者进程应该在此处终止。有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢你
质量门值在项目的 SonarQube UI 上配置。
sonarqube-quality-gate-action发送报告并等待平台的反馈以判断管道是否失败。 参考
在SonarQube平台上,如果您有权访问项目页面和项目配置,您应该能够通过以下类型的设置选项来管理质量门:
请注意,您还需要在项目中创建一个
sonar-project.properties
文件。 参考
如果同一个存储库中有多个项目,您可以添加不同的
sonar-project.properties
文件,每个项目一个(最好每个项目模块包中一个)。