I might be misunderstanding the problem, but can you merge the XML file
from each package into one and then pass that to the
"PublishCodeCoverageResult" task?
Perhaps with something like this
https://github.com/danielpalme/ReportGenerator
Thanks,
Michael
On 12/20/2022 8:32 PM, Guo, Gua wrote:
@Kinney, Michael D <mailto:[email protected]>
I assume you want to see pipeline "Code Coverage" like below “3. Azure
Pipeline Change” diagram.
But it will have a limitation. Current Edk2 CI/CD design is use “Ubuntu
GCC PR5” and “Windows VS2019 PR” that include each subtask for each
package. And each package will have itself Coverage Data, but the design
can not be covered by Azure API “PublishCodeCoverageResult”.
That’s why I don’t integrated it into the change.
1. Azure API doc:
https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v1?view=azure-pipelines
<https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v1?view=azure-pipelines>
2. Code Change:
3. Azure Pipeline Change:
VS2019
GCC5
https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220422452
<https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220422452>
https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220615640
<https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220615640>
https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab
<https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab>
https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab
<https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab>
Thanks,
Gua
-----Original Message-----
From: Kinney, Michael D <[email protected]>
Sent: Wednesday, December 21, 2022 5:23 AM
To: Guo, Gua <[email protected]>; [email protected]; Kinney, Michael
D <[email protected]>; Sean Brogan <[email protected]>;
Kubacki, Michael <[email protected]>
Cc: Sean Brogan <[email protected]>; Barkelew, Bret
<[email protected]>; Gao, Liming <[email protected]>;
Kinney, Michael D <[email protected]>
Subject: RE: [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Hi Gua,
I created a PR with this series.
https://github.com/tianocore/edk2/pull/3795
<https://github.com/tianocore/edk2/pull/3795>
When I follow link to Azure Pipelines for the GCC builds, I can see the
coverage.xml file in the ZIP file of artifacts.
https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73664&view=results
<https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73664&view=results>
But I do not see an information from Azure Pielines view on code
coverage or a way to view the lines covered from the Azure Pipelines web
pages.
Are there additional items to enable?
Mike
> -----Original Message-----
> From: Guo, Gua <[email protected] <mailto:[email protected]>>
> Sent: Tuesday, December 13, 2022 7:20 PM
> To: [email protected] <mailto:[email protected]>
> Cc: Guo, Gua <[email protected] <mailto:[email protected]>>; Sean Brogan
> <[email protected] <mailto:[email protected]>>;
Barkelew, Bret
> <[email protected] <mailto:[email protected]>>;
Kinney, Michael D
> <[email protected] <mailto:[email protected]>>;
Gao, Liming <[email protected] <mailto:[email protected]>>
> Subject: [PATCH v6 3/3] .azurepipelines: Install code coverage tool
>
> From: Gua Guo <[email protected] <mailto:[email protected]>>
>
> For Windows add below tool for code coverage 1. OpenCppCoverage:
> parsing pdb file to generate coverage data 2. pycobertura: show up
> html format data for coverage data
>
> For Linux add below tool for code coverage 1. lcov: parsing gcda gcno
> file to generate coverage data 2. lcov-cobertura: convert coverage
> data to cobertura format 3. pycobertura: show up html format data for
> coverage data
>
> Cc: Sean Brogan <[email protected]
<mailto:[email protected]>>
> Cc: Bret Barkelew <[email protected]
<mailto:[email protected]>>
> Cc: Michael D Kinney <[email protected]
<mailto:[email protected]>>
> Cc: Liming Gao <[email protected]
<mailto:[email protected]>>
> Signed-off-by: Gua Guo <[email protected] <mailto:[email protected]>>
> ---
> .azurepipelines/Ubuntu-GCC5.yml | 5 ++++-
> .azurepipelines/Windows-VS2019.yml | 5 +++++
> .azurepipelines/templates/pr-gate-build-job.yml | 2 ++
> .azurepipelines/templates/pr-gate-steps.yml | 4 ++++
> pip-requirements.txt | 2 ++
> 5 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/.azurepipelines/Ubuntu-GCC5.yml
> b/.azurepipelines/Ubuntu-GCC5.yml index 1acd8d2a46..f83951eeaf 100644
> --- a/.azurepipelines/Ubuntu-GCC5.yml
> +++ b/.azurepipelines/Ubuntu-GCC5.yml
> @@ -19,4 +19,7 @@ jobs:
> tool_chain_tag: 'GCC5'
>
> vm_image: 'ubuntu-latest'
>
> arch_list: "IA32,X64,ARM,AARCH64,RISCV64,LOONGARCH64"
>
> -
>
> + extra_install_step:
>
> + - bash: sudo apt-get install -y lcov
>
> + displayName: Install Code Coverage Tools
>
> + condition: and(gt(variables.pkg_count, 0), succeeded())
>
> diff --git a/.azurepipelines/Windows-VS2019.yml
> b/.azurepipelines/Windows-VS2019.yml
> index e4bd4b1d22..c07e5bb434 100644
> --- a/.azurepipelines/Windows-VS2019.yml
> +++ b/.azurepipelines/Windows-VS2019.yml
> @@ -18,3 +18,8 @@ jobs:
> tool_chain_tag: 'VS2019'
>
> vm_image: 'windows-2019'
>
> arch_list: "IA32,X64"
>
> + extra_install_step:
>
> + - powershell: choco install opencppcoverage; Write-Host
"##vso[task.prependpath]C:\Program Files\OpenCppCoverage"
>
> + displayName: Install Code Coverage Tool
>
> + condition: and(gt(variables.pkg_count, 0), succeeded())
>
> +
>
> diff --git a/.azurepipelines/templates/pr-gate-build-job.yml
> b/.azurepipelines/templates/pr-gate-build-job.yml
> index 7f88b41dc8..0ff1ce2952 100644
> --- a/.azurepipelines/templates/pr-gate-build-job.yml
> +++ b/.azurepipelines/templates/pr-gate-build-job.yml
> @@ -12,6 +12,7 @@ parameters:
> tool_chain_tag: ''
>
> vm_image: ''
>
> arch_list: ''
>
> + extra_install_step: []
>
>
>
> # Build step
>
> jobs:
>
> @@ -77,3 +78,4 @@ jobs:
> build_pkgs: $(Build.Pkgs)
>
> build_targets: $(Build.Targets)
>
> build_archs: ${{ parameters.arch_list }}
>
> + extra_install_step: ${{ parameters.extra_install_step }}
>
> diff --git a/.azurepipelines/templates/pr-gate-steps.yml
> b/.azurepipelines/templates/pr-gate-steps.yml
> index cb431e53fc..080f60aea6 100644
> --- a/.azurepipelines/templates/pr-gate-steps.yml
> +++ b/.azurepipelines/templates/pr-gate-steps.yml
> @@ -12,6 +12,7 @@ parameters:
> build_pkgs: ''
>
> build_targets: ''
>
> build_archs: ''
>
> + extra_install_step: []
>
>
>
> steps:
>
> - checkout: self
>
> @@ -37,6 +38,8 @@ steps:
> displayName: fetch target branch
>
> condition: eq(variables['Build.Reason'], 'PullRequest')
>
>
>
> +- ${{ parameters.extra_install_step }}
>
> +
>
> # trim the package list if this is a PR
>
> - task: CmdLine@1
>
> displayName: Check if ${{ parameters.build_pkgs }} need testing
>
> @@ -125,6 +128,7 @@ steps:
> TestSuites.xml
>
> **/BUILD_TOOLS_REPORT.html
>
> **/OVERRIDELOG.TXT
>
> + coverage.xml
>
> flattenFolders: true
>
> condition: succeededOrFailed()
>
>
>
> diff --git a/pip-requirements.txt b/pip-requirements.txt index
> be8c7a1c37..4ffcadddd8 100644
> --- a/pip-requirements.txt
> +++ b/pip-requirements.txt
> @@ -16,3 +16,5 @@ edk2-pytool-library==0.12.1
> edk2-pytool-extensions~=0.20.0
>
> edk2-basetools==0.1.39
>
> antlr4-python3-runtime==4.7.1
>
> +lcov-cobertura==2.0.2
>
> +
>
> --
> 2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#97653): https://edk2.groups.io/g/devel/message/97653
Mute This Topic: https://groups.io/mt/95660153/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-