[edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool

Michael D Kinney michael.d.kinney at intel.com
Wed Dec 21 03:17:29 UTC 2022


Hi Gua,

I see.  The lack of merge capability means the results and view of source files covered inside Azure Pipelines are not meaningful.

I am ok with this initial version that really only provide code coverage information for local builds or local evaluation of XML files generated by CI into artifacts.

Reviewed-by: Michael D Kinney michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>

Please bring the current status of this feature to a future TianoCore Tools/CI meeting for discussion on how we can improve this feature.

Thanks,

Mike

From: Guo, Gua <gua.guo at intel.com>
Sent: Tuesday, December 20, 2022 5:32 PM
To: Kinney, Michael D <michael.d.kinney at intel.com>; devel at edk2.groups.io; Sean Brogan <sean.brogan at microsoft.com>; Kubacki, Michael <michael.kubacki at microsoft.com>
Cc: Sean Brogan <sean.brogan at microsoft.com>; Barkelew, Bret <bret.barkelew at microsoft.com>; Gao, Liming <gaoliming at byosoft.com.cn>
Subject: RE: [PATCH v6 3/3] .azurepipelines: Install code coverage tool


@Kinney, Michael D<mailto:michael.d.kinney at intel.com>



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.

[cid:image006.png at 01D914A7.B016F9D0]



  1.  Azure API doc: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v1?view=azure-pipelines



  1.  Code Change:

[cid:image007.png at 01D914A7.B016F9D0]



  1.  Azure Pipeline Change:

VS2019

GCC5

https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220422452

[cid:image008.png at 01D914A7.B016F9D0]

https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220615640

[cid:image009.png at 01D914A7.B016F9D0]

https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab

[cid:image010.png at 01D914A7.B016F9D0]

https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codecoverage-tab

[cid:image011.png at 01D914A7.B016F9D0]









Thanks,

Gua

-----Original Message-----
From: Kinney, Michael D <michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>>
Sent: Wednesday, December 21, 2022 5:23 AM
To: Guo, Gua <gua.guo at intel.com<mailto:gua.guo at intel.com>>; devel at edk2.groups.io<mailto:devel at edk2.groups.io>; Kinney, Michael D <michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>>; Sean Brogan <sean.brogan at microsoft.com<mailto:sean.brogan at microsoft.com>>; Kubacki, Michael <michael.kubacki at microsoft.com<mailto:michael.kubacki at microsoft.com>>
Cc: Sean Brogan <sean.brogan at microsoft.com<mailto:sean.brogan at microsoft.com>>; Barkelew, Bret <bret.barkelew at microsoft.com<mailto:bret.barkelew at microsoft.com>>; Gao, Liming <gaoliming at byosoft.com.cn<mailto:gaoliming at byosoft.com.cn>>; Kinney, Michael D <michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>>
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



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



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 <gua.guo at intel.com<mailto:gua.guo at intel.com>>

> Sent: Tuesday, December 13, 2022 7:20 PM

> To: devel at edk2.groups.io<mailto:devel at edk2.groups.io>

> Cc: Guo, Gua <gua.guo at intel.com<mailto:gua.guo at intel.com>>; Sean Brogan

> <sean.brogan at microsoft.com<mailto:sean.brogan at microsoft.com>>; Barkelew, Bret

> <bret.barkelew at microsoft.com<mailto:bret.barkelew at microsoft.com>>; Kinney, Michael D

> <michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>>; Gao, Liming <gaoliming at byosoft.com.cn<mailto:gaoliming at byosoft.com.cn>>

> Subject: [PATCH v6 3/3] .azurepipelines: Install code coverage tool

>

> From: Gua Guo <gua.guo at intel.com<mailto:gua.guo at intel.com>>

>

> 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 <sean.brogan at microsoft.com<mailto:sean.brogan at microsoft.com>>

> Cc: Bret Barkelew <Bret.Barkelew at microsoft.com<mailto:Bret.Barkelew at microsoft.com>>

> Cc: Michael D Kinney <michael.d.kinney at intel.com<mailto:michael.d.kinney at intel.com>>

> Cc: Liming Gao <gaoliming at byosoft.com.cn<mailto:gaoliming at byosoft.com.cn>>

> Signed-off-by: Gua Guo <gua.guo at intel.com<mailto:gua.guo at intel.com>>

> ---

>  .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 at 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 (#97654): https://edk2.groups.io/g/devel/message/97654
Mute This Topic: https://groups.io/mt/95660153/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image006.png
Type: image/png
Size: 48816 bytes
Desc: image006.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image007.png
Type: image/png
Size: 97870 bytes
Desc: image007.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image008.png
Type: image/png
Size: 28311 bytes
Desc: image008.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image009.png
Type: image/png
Size: 30419 bytes
Desc: image009.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image010.png
Type: image/png
Size: 49974 bytes
Desc: image010.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image011.png
Type: image/png
Size: 52236 bytes
Desc: image011.png
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20221221/60ad5209/attachment-0011.png>


More information about the edk2-devel-archive mailing list