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

Guo, Gua posted 3 patches 3 years, 1 month ago
There is a newer version of this series
[edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Guo, Gua 3 years, 1 month ago
From: Gua Guo <gua.guo@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@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Gua Guo <gua.guo@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@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 (#97341): https://edk2.groups.io/g/devel/message/97341
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Michael D Kinney 3 years, 1 month ago
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@intel.com>
> Sent: Tuesday, December 13, 2022 7:20 PM
> To: devel@edk2.groups.io
> Cc: Guo, Gua <gua.guo@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; Barkelew, Bret <bret.barkelew@microsoft.com>;
> Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>
> Subject: [PATCH v6 3/3] .azurepipelines: Install code coverage tool
> 
> From: Gua Guo <gua.guo@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@microsoft.com>
> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Signed-off-by: Gua Guo <gua.guo@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@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 (#97637): https://edk2.groups.io/g/devel/message/97637
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Guo, Gua 3 years, 1 month ago
@Kinney, Michael D<mailto:michael.d.kinney@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@01D9151F.141EE9C0]



  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:image001.png@01D9151D.697795E0]



  1.  Azure Pipeline Change:

VS2019

GCC5

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

[cid:image002.png@01D9151E.01661610]

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

[cid:image003.png@01D9151E.01661610]

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:image004.png@01D9151E.01661610]

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:image005.png@01D9151E.4BF4D900]









Thanks,

Gua

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

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

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

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

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

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

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

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

>

> From: Gua Guo <gua.guo@intel.com<mailto:gua.guo@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@microsoft.com<mailto:sean.brogan@microsoft.com>>

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

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

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

> Signed-off-by: Gua Guo <gua.guo@intel.com<mailto:gua.guo@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@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 (#97646): https://edk2.groups.io/g/devel/message/97646
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Michael D Kinney 3 years, 1 month ago
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@intel.com<mailto:michael.d.kinney@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@intel.com>
Sent: Tuesday, December 20, 2022 5:32 PM
To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io; Sean Brogan <sean.brogan@microsoft.com>; Kubacki, Michael <michael.kubacki@microsoft.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>; Barkelew, Bret <bret.barkelew@microsoft.com>; Gao, Liming <gaoliming@byosoft.com.cn>
Subject: RE: [PATCH v6 3/3] .azurepipelines: Install code coverage tool


@Kinney, Michael D<mailto:michael.d.kinney@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@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@01D914A7.B016F9D0]



  1.  Azure Pipeline Change:

VS2019

GCC5

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

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

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

[cid:image009.png@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@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@01D914A7.B016F9D0]









Thanks,

Gua

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

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

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

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

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

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

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

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

>

> From: Gua Guo <gua.guo@intel.com<mailto:gua.guo@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@microsoft.com<mailto:sean.brogan@microsoft.com>>

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

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

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

> Signed-off-by: Gua Guo <gua.guo@intel.com<mailto:gua.guo@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@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Michael Kubacki 3 years, 1 month ago
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:michael.d.kinney@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.
> 
>  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 <michael.d.kinney@intel.com>
> Sent: Wednesday, December 21, 2022 5:23 AM
> To: Guo, Gua <gua.guo@intel.com>; devel@edk2.groups.io; Kinney, Michael 
> D <michael.d.kinney@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; 
> Kubacki, Michael <michael.kubacki@microsoft.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>; Barkelew, Bret 
> <bret.barkelew@microsoft.com>; Gao, Liming <gaoliming@byosoft.com.cn>; 
> Kinney, Michael D <michael.d.kinney@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 
> <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 <gua.guo@intel.com <mailto:gua.guo@intel.com>>
> 
>  > Sent: Tuesday, December 13, 2022 7:20 PM
> 
>  > To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
> 
>  > Cc: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com>>; Sean Brogan
> 
>  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com>>; 
> Barkelew, Bret
> 
>  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com>>; 
> Kinney, Michael D
> 
>  > <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com>>; 
> Gao, Liming <gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn>>
> 
>  > Subject: [PATCH v6 3/3] .azurepipelines: Install code coverage tool
> 
>  >
> 
>  > From: Gua Guo <gua.guo@intel.com <mailto:gua.guo@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@microsoft.com 
> <mailto:sean.brogan@microsoft.com>>
> 
>  > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com 
> <mailto:Bret.Barkelew@microsoft.com>>
> 
>  > Cc: Michael D Kinney <michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@intel.com>>
> 
>  > Cc: Liming Gao <gaoliming@byosoft.com.cn 
> <mailto:gaoliming@byosoft.com.cn>>
> 
>  > Signed-off-by: Gua Guo <gua.guo@intel.com <mailto:gua.guo@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@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/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Guo, Gua 3 years, 1 month ago
@Kubacki, Michael<mailto:michael.kubacki@microsoft.com>



Try to see the block diagram "Current behavior" vs "Expected behavior". We find a way to transfer “Current behavior” to “Expected behavior” if we want to support pipeline tab “Code Coverage”. Hope it’s helpful for you to realize the limitation.

[cid:image001.png@01D91536.A4A7ADD0]



Thanks,

Gua

-----Original Message-----
From: Michael Kubacki <mikuback@linux.microsoft.com>
Sent: Wednesday, December 21, 2022 11:11 AM
To: devel@edk2.groups.io; Guo, Gua <gua.guo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; Kubacki, Michael <michael.kubacki@microsoft.com>
Cc: Barkelew, Bret <bret.barkelew@microsoft.com>; Gao, Liming <gaoliming@byosoft.com.cn>
Subject: Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool



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:michael.d.kinney@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.

>

>  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/refere

> nce/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=102204

> 22452

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

> 422452>

>

>

>

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

> 15640

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

> 615640>

>

> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_

> a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec

> overage-tab

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&

> _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code

> coverage-tab>

>

>

>

> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_

> a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec

> overage-tab

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&

> _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code

> coverage-tab>

>

> Thanks,

>

> Gua

>

> -----Original Message-----

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

> Sent: Wednesday, December 21, 2022 5:23 AM

> To: Guo, Gua <gua.guo@intel.com<mailto:gua.guo@intel.com>>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Kinney,

> Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Sean Brogan

> <sean.brogan@microsoft.com<mailto:sean.brogan@microsoft.com>>; Kubacki, Michael

> <michael.kubacki@microsoft.com<mailto:michael.kubacki@microsoft.com>>

> Cc: Sean Brogan <sean.brogan@microsoft.com<mailto:sean.brogan@microsoft.com>>; Barkelew, Bret

> <bret.barkelew@microsoft.com<mailto:bret.barkelew@microsoft.com>>; Gao, Liming <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>;

> Kinney, Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@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

> <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&v

> iew=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 <gua.guo@intel.com <mailto:gua.guo@intel.com<mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>

>

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

>

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

>

>  > Cc: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com<mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>; Sean

> Brogan

>

>  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com<mailto:sean.brogan@microsoft.com%20%3cmailto:sean.brogan@microsoft.com>>>;

> Barkelew, Bret

>

>  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com<mailto:bret.barkelew@microsoft.com%20%3cmailto:bret.barkelew@microsoft.com>>>;

> Kinney, Michael D

>

>  > <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com%20%3cmailto:michael.d.kinney@intel.com>>>;

> Gao, Liming <gaoliming@byosoft.com.cn

> <mailto:gaoliming@byosoft.com.cn>>

>

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

>

>  >

>

>  > From: Gua Guo <gua.guo@intel.com <mailto:gua.guo@intel.com<mailto:gua.guo@intel.com%20%3cmailto:gua.guo@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@microsoft.com

> <mailto:sean.brogan@microsoft.com>>

>

>  > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com

> <mailto:Bret.Barkelew@microsoft.com>>

>

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

> <mailto:michael.d.kinney@intel.com>>

>

>  > Cc: Liming Gao <gaoliming@byosoft.com.cn

> <mailto:gaoliming@byosoft.com.cn>>

>

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

> <mailto:gua.guo@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@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 (#97664): https://edk2.groups.io/g/devel/message/97664
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Michael Kubacki 3 years, 1 month ago
I understand the problem. Have you looked into tools like the one I 
linked? It also has a DevOps extension - 
https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator.

I have not looked at it closely, but at a high-level, it appears to at 
least attempt to address this problem.

Thanks,
Michael

On 12/20/2022 11:20 PM, Guo, Gua wrote:
> @Kubacki, Michael <mailto:michael.kubacki@microsoft.com>
> 
> Try to see the block diagram "Current behavior" vs "Expected behavior". 
> We find a way to transfer “Current behavior” to “Expected behavior” if 
> we want to support pipeline tab “Code Coverage”. Hope it’s helpful for 
> you to realize the limitation.
> 
> Thanks,
> 
> Gua
> 
> -----Original Message-----
> From: Michael Kubacki <mikuback@linux.microsoft.com>
> Sent: Wednesday, December 21, 2022 11:11 AM
> To: devel@edk2.groups.io; Guo, Gua <gua.guo@intel.com>; Kinney, Michael 
> D <michael.d.kinney@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; 
> Kubacki, Michael <michael.kubacki@microsoft.com>
> Cc: Barkelew, Bret <bret.barkelew@microsoft.com>; Gao, Liming 
> <gaoliming@byosoft.com.cn>
> Subject: Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code 
> coverage tool
> 
> 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 
> <https://github.com/danielpalme/ReportGenerator>
> 
> Thanks,
> 
> Michael
> 
> On 12/20/2022 8:32 PM, Guo, Gua wrote:
> 
>  > @Kinney, Michael D <mailto:michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@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.
> 
>  >
> 
>  >  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>
> 
>  >
> 
>  > <https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/refere
> 
>  > nce/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=102204 
> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=102204>
> 
>  > 22452
> 
>  > <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220
> 
>  > 422452>
> 
>  >
> 
>  >
> 
>  >
> 
>  > 
> https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=102206 
> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=102206>
> 
>  > 15640
> 
>  > <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220
> 
>  > 615640>
> 
>  >
> 
>  > 
> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_ 
> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_>
> 
>  > a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec
> 
>  > overage-tab
> 
>  > <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&
> 
>  > _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code
> 
>  > coverage-tab>
> 
>  >
> 
>  >
> 
>  >
> 
>  > 
> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_ 
> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_>
> 
>  > a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec
> 
>  > overage-tab
> 
>  > <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&
> 
>  > _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code
> 
>  > coverage-tab>
> 
>  >
> 
>  > Thanks,
> 
>  >
> 
>  > Gua
> 
>  >
> 
>  > -----Original Message-----
> 
>  > From: Kinney, Michael D <michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@intel.com>>
> 
>  > Sent: Wednesday, December 21, 2022 5:23 AM
> 
>  > To: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com>>; 
> devel@edk2.groups.io <mailto:devel@edk2.groups.io>; Kinney,
> 
>  > Michael D <michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@intel.com>>; Sean Brogan
> 
>  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com>>; 
> Kubacki, Michael
> 
>  > <michael.kubacki@microsoft.com <mailto:michael.kubacki@microsoft.com>>
> 
>  > Cc: Sean Brogan <sean.brogan@microsoft.com 
> <mailto:sean.brogan@microsoft.com>>; Barkelew, Bret
> 
>  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com>>; 
> Gao, Liming <gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn>>;
> 
>  > Kinney, Michael D <michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@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 
> <https://github.com/tianocore/edk2/pull/3795>
> 
>  > <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&v 
> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73664&v>
> 
>  > iew=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 <gua.guo@intel.com <mailto:gua.guo@intel.com 
> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>
> 
>  >
> 
>  >  > Sent: Tuesday, December 13, 2022 7:20 PM
> 
>  >
> 
>  >  > To: devel@edk2.groups.io <mailto:devel@edk2.groups.io> 
> <mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io>>
> 
>  >
> 
>  >  > Cc: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com 
> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>; Sean
> 
>  > Brogan
> 
>  >
> 
>  >  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com 
> <mailto:sean.brogan@microsoft.com%20%3cmailto:sean.brogan@microsoft.com>>>;
> 
>  > Barkelew, Bret
> 
>  >
> 
>  >  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com 
> <mailto:bret.barkelew@microsoft.com%20%3cmailto:bret.barkelew@microsoft.com>>>;
> 
>  > Kinney, Michael D
> 
>  >
> 
>  >  > <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com 
> <mailto:michael.d.kinney@intel.com%20%3cmailto:michael.d.kinney@intel.com>>>;
> 
>  > Gao, Liming <gaoliming@byosoft.com.cn
> 
>  > <mailto:gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn>>>
> 
>  >
> 
>  >  > Subject: [PATCH v6 3/3] .azurepipelines: Install code coverage tool
> 
>  >
> 
>  >  >
> 
>  >
> 
>  >  > From: Gua Guo <gua.guo@intel.com <mailto:gua.guo@intel.com 
> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@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@microsoft.com
> 
>  > <mailto:sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com>>>
> 
>  >
> 
>  >  > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com
> 
>  > <mailto:Bret.Barkelew@microsoft.com 
> <mailto:Bret.Barkelew@microsoft.com>>>
> 
>  >
> 
>  >  > Cc: Michael D Kinney <michael.d.kinney@intel.com
> 
>  > <mailto:michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com>>>
> 
>  >
> 
>  >  > Cc: Liming Gao <gaoliming@byosoft.com.cn
> 
>  > <mailto:gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn>>>
> 
>  >
> 
>  >  > Signed-off-by: Gua Guo <gua.guo@intel.com
> 
>  > <mailto:gua.guo@intel.com <mailto:gua.guo@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@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 (#97669): https://edk2.groups.io/g/devel/message/97669
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool
Posted by Guo, Gua 3 years, 1 month ago
I think I may need to have the access right to install pipeline by the step. I guess I need to have enough access right to control https://dev.azure.com/tianocore/edk2-ci to install DevOps Server Extensions.



[cid:image001.png@01D91547.2CAA9B60]



Thanks,

Gua

-----Original Message-----
From: Michael Kubacki <mikuback@linux.microsoft.com>
Sent: Wednesday, December 21, 2022 12:30 PM
To: devel@edk2.groups.io; Guo, Gua <gua.guo@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; Kubacki, Michael <michael.kubacki@microsoft.com>
Cc: Barkelew, Bret <bret.barkelew@microsoft.com>; Gao, Liming <gaoliming@byosoft.com.cn>
Subject: Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code coverage tool



I understand the problem. Have you looked into tools like the one I linked? It also has a DevOps extension - https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator.



I have not looked at it closely, but at a high-level, it appears to at least attempt to address this problem.



Thanks,

Michael



On 12/20/2022 11:20 PM, Guo, Gua wrote:

> @Kubacki, Michael <mailto:michael.kubacki@microsoft.com>

>

> Try to see the block diagram "Current behavior" vs "Expected behavior".

> We find a way to transfer “Current behavior” to “Expected behavior” if

> we want to support pipeline tab “Code Coverage”. Hope it’s helpful for

> you to realize the limitation.

>

> Thanks,

>

> Gua

>

> -----Original Message-----

> From: Michael Kubacki <mikuback@linux.microsoft.com<mailto:mikuback@linux.microsoft.com>>

> Sent: Wednesday, December 21, 2022 11:11 AM

> To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Guo, Gua <gua.guo@intel.com<mailto:gua.guo@intel.com>>; Kinney,

> Michael D <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>; Sean Brogan

> <sean.brogan@microsoft.com<mailto:sean.brogan@microsoft.com>>; Kubacki, Michael

> <michael.kubacki@microsoft.com<mailto:michael.kubacki@microsoft.com>>

> Cc: Barkelew, Bret <bret.barkelew@microsoft.com<mailto:bret.barkelew@microsoft.com>>; Gao, Liming

> <gaoliming@byosoft.com.cn<mailto:gaoliming@byosoft.com.cn>>

> Subject: Re: [edk2-devel] [PATCH v6 3/3] .azurepipelines: Install code

> coverage tool

>

> 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

> <https://github.com/danielpalme/ReportGenerator>

>

> Thanks,

>

> Michael

>

> On 12/20/2022 8:32 PM, Guo, Gua wrote:

>

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

> <mailto:michael.d.kinney@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.

>

>  >

>

>  >  1. Azure API doc:

>

>  >

> https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/referen

> ce/publish-code-coverage-results-v1?view=azure-pipelines

> <https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/refere

> nce/publish-code-coverage-results-v1?view=azure-pipelines>

>

>  >

>

>  >

> <https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/refere

>

>  > nce/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=102204

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

> 4>

>

>  > 22452

>

>  >

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

>

>  > 422452>

>

>  >

>

>  >

>

>  >

>

>  >

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

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

> 6>

>

>  > 15640

>

>  >

> <https://github.com/tianocore/edk2/pull/3349/checks?check_run_id=10220

>

>  > 615640>

>

>  >

>

>  >

> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&_

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&

> _>

>

>  >

> a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec

>

>  > overage-tab

>

>  >

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73952&

>

>  >

> _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code

>

>  > coverage-tab>

>

>  >

>

>  >

>

>  >

>

>  >

> https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&_

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&

> _>

>

>  >

> a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=codec

>

>  > overage-tab

>

>  >

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73951&

>

>  >

> _a=summary&tab=ms.vss-codecoverage-web.code-coverage-details&view=code

>

>  > coverage-tab>

>

>  >

>

>  > Thanks,

>

>  >

>

>  > Gua

>

>  >

>

>  > -----Original Message-----

>

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

> <mailto:michael.d.kinney@intel.com>>

>

>  > Sent: Wednesday, December 21, 2022 5:23 AM

>

>  > To: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com<mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>;

> devel@edk2.groups.io<mailto:devel@edk2.groups.io> <mailto:devel@edk2.groups.io>; Kinney,

>

>  > Michael D <michael.d.kinney@intel.com

> <mailto:michael.d.kinney@intel.com>>; Sean Brogan

>

>  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com<mailto:sean.brogan@microsoft.com%20%3cmailto:sean.brogan@microsoft.com>>>;

> Kubacki, Michael

>

>  > <michael.kubacki@microsoft.com

> <mailto:michael.kubacki@microsoft.com>>

>

>  > Cc: Sean Brogan <sean.brogan@microsoft.com

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

>

>  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com<mailto:bret.barkelew@microsoft.com%20%3cmailto:bret.barkelew@microsoft.com>>>;

> Gao, Liming <gaoliming@byosoft.com.cn

> <mailto:gaoliming@byosoft.com.cn>>;

>

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

> <mailto:michael.d.kinney@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

> <https://github.com/tianocore/edk2/pull/3795>

>

>  > <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&v

> <https://dev.azure.com/tianocore/edk2-ci/_build/results?buildId=73664&

> v>

>

>  > iew=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 <gua.guo@intel.com <mailto:gua.guo@intel.com

> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>

>

>  >

>

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

>

>  >

>

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

> <mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io<mailto:devel@edk2.groups.io%20%3cmailto:devel@edk2.groups.io>>>

>

>  >

>

>  >  > Cc: Guo, Gua <gua.guo@intel.com <mailto:gua.guo@intel.com

> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@intel.com>>>; Sean

>

>  > Brogan

>

>  >

>

>  >  > <sean.brogan@microsoft.com <mailto:sean.brogan@microsoft.com

> <mailto:sean.brogan@microsoft.com%20%3cmailto:sean.brogan@microsoft.co

> m>>>;

>

>  > Barkelew, Bret

>

>  >

>

>  >  > <bret.barkelew@microsoft.com <mailto:bret.barkelew@microsoft.com

> <mailto:bret.barkelew@microsoft.com%20%3cmailto:bret.barkelew@microsof

> t.com>>>;

>

>  > Kinney, Michael D

>

>  >

>

>  >  > <michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com

> <mailto:michael.d.kinney@intel.com%20%3cmailto:michael.d.kinney@intel.

> com>>>;

>

>  > Gao, Liming <gaoliming@byosoft.com.cn

>

>  > <mailto:gaoliming@byosoft.com.cn

> <mailto:gaoliming@byosoft.com.cn>>>

>

>  >

>

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

> tool

>

>  >

>

>  >  >

>

>  >

>

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

> <mailto:gua.guo@intel.com%20%3cmailto:gua.guo@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@microsoft.com

>

>  > <mailto:sean.brogan@microsoft.com

> <mailto:sean.brogan@microsoft.com>>>

>

>  >

>

>  >  > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com

>

>  > <mailto:Bret.Barkelew@microsoft.com

> <mailto:Bret.Barkelew@microsoft.com>>>

>

>  >

>

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

>

>  > <mailto:michael.d.kinney@intel.com

> <mailto:michael.d.kinney@intel.com>>>

>

>  >

>

>  >  > Cc: Liming Gao <gaoliming@byosoft.com.cn

>

>  > <mailto:gaoliming@byosoft.com.cn

> <mailto:gaoliming@byosoft.com.cn>>>

>

>  >

>

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

>

>  > <mailto:gua.guo@intel.com <mailto:gua.guo@intel.com<mailto:gua.guo@intel.com%20%3cmailto:gua.guo@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@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 (#97674): https://edk2.groups.io/g/devel/message/97674
Mute This Topic: https://groups.io/mt/95660153/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-