What this book covers
Chapter 1, Planning and Tracking Work, explains how to create and set up a scrum team project, import requirements as work items from Excel, use work items for collaboration, set up hierarchical backlogs, configure and customize kanban boards, prepare and plan a sprint, use delivery plans to track multiple teams, and use dashboards for planning and tracking work.
Chapter 2, Source Control Management, covers the differences between Git and TFVC, why Git is more suited for greenfield projects with distributed teams working on small codebases, how to migrate from TFVC to Git with history, how to access Azure DevOps Git repositories using SSH, and how to import a Git repository from GitHub into Azure DevOps Server. It also explains how to perform Git operations using the command line and Visual Studio Code, how to configure branch policies and use pull requests to review code, how to configure and use Git Hooks, how to manage and store large files in Git, how to use Git branching strategies for CD, and how to search code in Azure DevOps using the code search service.
Chapter 3, Build and Release Agents, explains how to set up build and release agents, automate the setup of build and release agents using unattended installation with PowerShell, download agents from GitHub using the GitHub release API, configure deployment groups, run an Azure DevOps agent behind a corporate enterprise proxy, analyze build usage data, automate agent pool maintenance, and configure retention policies for builds and releases. In this chapter, you'll also learn how to use agent capabilities and demands to map build definitions to specific agents in pools, and finally, how to manage and permission agent usage using role-based access control.
Chapter 4, Continuous Integration and Build Automation, defines continuous integration. It also explains how to configure one build pipeline to build all branches of a code repository, how to reflect the branch quality in the build name by dynamically updating the build name during pipeline execution, how to use web deploy to create a package in an ASP.NET build pipeline, how to organize the output from a build into logical folders, how to use an assembly version to stamp assemblies in a pipeline, how to set up a build pipeline for a .NET Core application, how to set up a build pipeline for a Node.js application, and how to set up a build pipeline for database projects. You'll also learn how to use SonarQube in a build pipeline to manage technical debt.
Chapter 5, Continuous Testing, shows the direction Microsoft is taking with its testing tools, along with the rationale behind discontinuing some of the testing tools. It also shows how to run NUnit-based unit tests in a pipeline, how to use feature flags to test in production, how to distribute multi-configuration tests on agent pools, how to configure parallel execution of automated tests to speed up overall test execution, how to run functional Specflow tests using Azure pipelines, how to analyze test execution results from the runs view. You'll also learn how to export test artifacts and test results from Test Hub, and finally, how to chart test results on dashboards in Azure DevOps Server team projects.
Chapter 6, Continuous Deployments, defines continuous deployment. It also explains how to deploy the database to SQL Azure using Azure release pipelines, how to consume secrets in Azure pipelines from the Azure Key Vault, how to deploy a .NET Core app into Azure App Service, how to deploy an Azure Function using Azure Pipelines, and how to publish secrets to Azure Key Vault. In this chapter, you'll also learn how to deploy a static website on Azure Storage, and finally, deploy a VM to Azure DevTest Labs.
Chapter 7, Azure Artifacts and Dependency Management, explains how to leverage artifacts to break down monolithic applications into microservices, how to publish a NuGet package to artifacts, how to consume a NuGet package feed in Visual Studio, how to publish an NPM package to an artifact feed in Azure DevOps Server, how to test NuGet packages using artifact views, and how to secure your packages by scanning for known vulnerabilities in your dependencies using WhiteSource.
Chapter 8, Azure DevOps Extensions, explains how to leverage the Azure DevOps Server APIs to extend Azure DevOps Server, how to create a new publisher in Visual Studio Marketplace, how to create a simple task to clean folder, how to create a UI extension, how to create a service connection to connect to GitLab, how to create a pipeline task to consume the custom service connection and download GitLab sources and finally how to publish extensions to Visual Studio Marketplace using Azure Pipelines.