Code Analysis & Code Metrics Integration in Azure Pipelines - Blogs
X
18Mar

Code Analysis & Code Metrics Integration in Azure Pipelines

This documentation shows the tutorial on how to integrate Visual Studio Code Analysis and Code Metrics in Azure Pipelines using YAML. Follow the steps:

  1. Open Visual Studio 2019 and open project or solution and select your project.1b
  2. Now you have to add a NuGet package named “Microsoft.CodeAnalysis.Metrics” to your solution. For this right click on the solution in Solution Explorer and click on Manage NuGet Packages for Solution.

2b

3. Browse for Microsoft.CodeAnalysis.Metrics in the search bar. Click on the package. Select all your projects in the solution and click on Install.

3b4. In the next 2 windows click on OK then Accept. Wait until the package gets added to all your projects.

5. Now save all your changes. Then in team explorer commit your changes with a commit message.

4b

6.  Sync the changes with the server in Azure Repos.

5b

 

7. Navigate to your project in Azure DevOps and go to Build section of Pipelines.

8. Click on New Pipeline to setup a pipeline in YAML. If you have a n existing YAML pipeline you can add the stage to it.

9. Click on Azure Repos Git and then select your repository.

6b

10. Click on Starter Pipeline for a new pipeline.

7b

 

11. Add the following stage to your existing pipeline for Code Analysis and Code Metrics .

 - stage: CodeScan
   dependsOn: []
   jobs:
     - job: CodeScan
       pool:
        vmImage: 'vs2017-win2016'
       steps:
       - task: NuGetCommand@2
	   displayName: NuGetRestore
         inputs:
           restoreSolution: '$(solution)'
       - task: VSBuild@1
         displayName: CodeAnalysis
         inputs:
           solution: '$(solution)'
           msbuildArgs: '/p:RunCodeAnalysis=true'
           platform: '$(buildPlatform)'
           configuration: '$(buildConfiguration)'
       - task: VSBuild@1
         displayName: CodeMetrics
         inputs:
           solution: '$(solution)'
           msbuildArgs: '/t:Metrics /p:MetricsOutputFile=$(Build.ArtifactStagingDirectory)/PartsUnlimitted.Metrics.xml' # Modify xml file name according to project
           platform: '$(buildPlatform)'
           configuration: '$(buildConfiguration)'
       - task: PublishBuildArtifacts@1
         displayName: 'Publish Metrics'
         inputs:
           PathtoPublish: '$(Build.ArtifactStagingDirectory)'
           ArtifactName: 'MetricsReport'
           publishLocation: 'Container'

Note: Add solution, buildPlatform and buildConfiguration in the variables section of the pipeline.

variables:
  solution: '**/*.sln' # Provide path of .sln file here
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

12. Add other stages and dependencies for build, deploy or any other functionality according to the needs of the project. If you only want the pipeline for Code Metrics and Code Analysis, you can go for the single stage complete script provided below. Remove everything in your Starter Pipeline and add the following script. 

trigger:
  - master
  
  variables:
    solution: '**/*.sln' # Provide path of .sln file here
    buildPlatform: 'Any CPU'
    buildConfiguration: 'Release'
  
  pool:
    vmImage: 'vs2017-win2016'
  
  steps:
  - task: NuGetCommand@2
    displayName: NuGetRestore
    inputs:
      restoreSolution: '$(solution)'
  - task: VSBuild@1
    displayName: CodeAnalysis
    inputs:
      solution: '$(solution)'
      msbuildArgs: '/p:RunCodeAnalysis=true'
      platform: '$(buildPlatform)'
      configuration: '$(buildConfiguration)'
  - task: VSBuild@1
    displayName: CodeMetrics
    inputs:
      solution: '$(solution)'
      msbuildArgs: '/t:Metrics /p:MetricsOutputFile=$(Build.ArtifactStagingDirectory)/PartsUnlimitted.Metrics.xml'
      platform: '$(buildPlatform)'
      configuration: '$(buildConfiguration)'
  - task: PublishBuildArtifacts@1
    displayName: 'Publish Metrics'
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)'
      ArtifactName: 'MetricsReport'
      publishLocation: 'Container'

13. Click on Save and run to run the pipeline.

save&run

14. Enter a commit message and click Save and run.

15. View the live logs of the pipeline to see Code Analysis. You can also download the logs if required.

codeAnalysis

16. The Code Metrics report will be published as an XML file inside the Artifact generated after the pipeline. For this navigate to the Runs tab of your pipeline, click on any Run you want.

CodeScan

17. You can find the report by clicking Artifacts button.

Artifacts

18. Download the XML file to view the Code Metrics report.

code

19. Congrats!!!!! You are Done.

 

Related

GitHub Integration with Marketplace Apps

In GitHub we have services that integrate with GitHub which can help you do anything from enabling c...

Read More >

Download Bugzilla - TFS Migrator

Seamless, Stress-free and Simplified Migrations using CDMT “Canarys Data Migration Tool”

Read More >

ASP .Net MVC Error Logging Using Elmah

ASP .Net MVC Error Logging Using Google ElmahIntroduction: ELMAH is one of the popular Library to lo...

Read More >

Upcoming Webinar - Offshore support to North American Dynamics NAV partners

Offshore support to North American Dynamics NAV partners whose customers are moving to NAV '16Wh...

Read More >

Introduction to Reusable Workflows

Avoid Duplication! GitHub Actions Reusable Workflows. Thanks to this feature you can now reference a...

Read More >

Bugzilla to TFS Migrator (Part 3 of 4) – Configuration

This is the third part of the Bugzilla to TFS Migrator blog series covering the configuration of the...

Read More >

Why automation testing is required and its advantages over manual testing process

What is Automation Testing?Making the manual testing process as an automatic is called Automating Te...

Read More >

GitHub Codespaces Features and Capabilities

Codespaces are a safe, configurable, and dedicated development environment that has all of the capab...

Read More >

New Tools in NAV 2013 (the less talked about ones) - Concluding Part

This part (as I said in my previous blog), will contain some more new tools and features focusing on...

Read More >

Accelerating Digital Transformation with GitHub

Hi All, in this blog I would like to share few insights on how you can leverage GitHub for your deve...

Read More >

Share

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Monthly Archive
Subscribe
Name

Text/HTML
Contact Us
  • *
  • *