提问人:Niranjan 提问时间:8/25/2023 最后编辑:Mustafa ÖzçetinNiranjan 更新时间:8/28/2023 访问量:105
Github Actions 为测试结果添加质量门
Github Actions add quality gate for test results
问:
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%,那么我希望构建失败,或者进程应该在这里终止。有人可以帮我吗?任何帮助将不胜感激。谢谢
答:
0赞
GuiFalourd
8/28/2023
#1
质量门控值在项目的 SonarQube UI 上配置。
sonarqube-quality-gate-action 发送报告并等待来自平台的反馈是否使管道失败。 参考资料
在 SonarQube 平台上,如果您有权访问项目页面和项目配置,您应该能够通过以下类型的设置选项来管理质量门:
请注意,您还需要在项目中创建一个文件。参考sonar-project.properties
如果同一存储库中有多个项目,则可以添加不同的文件,每个项目一个(理想情况下,每个项目模块包中一个)。sonar-project.properties
评论