Skip to content

Commit 1da4f40

Browse files
authored
Merge pull request #50205 from ShawnKupfer/WB1761
AB#1013444: Create a release pipeline in Azure Pipelines
2 parents bcdd6fc + ccf47de commit 1da4f40

14 files changed

+237
-235
lines changed
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.1-introduction
3-
title: Introduction
4-
metadata:
5-
title: Introduction
6-
description: Introduction
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 1
13-
content: |
14-
[!include[](includes/1-introduction.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.1-introduction
3+
title: Introduction
4+
metadata:
5+
title: Introduction
6+
description: Introduction
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 1
13+
content: |
14+
[!include[](includes/1-introduction.md)]
15+
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.2-what-is-cd
3-
title: What is continuous delivery?
4-
metadata:
5-
title: What is continuous delivery?
6-
description: Learn what continuous delivery is, why it's important, and what tools you can use.
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 7
13-
content: |
14-
[!include[](includes/2-what-is-cd.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.2-what-is-cd
3+
title: What is continuous delivery?
4+
metadata:
5+
title: What is continuous delivery?
6+
description: Learn what continuous delivery is, why it's important, and what tools you can use.
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 7
13+
content: |
14+
[!include[](includes/2-what-is-cd.md)]
15+
Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.3-plan-release-pipeline
3-
title: Plan a release pipeline by using Azure Pipelines
4-
metadata:
5-
title: Plan a release pipeline by using Azure Pipelines
6-
description: Plan a basic CD pipeline that runs on Azure Pipelines.
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 6
13-
content: |
14-
[!include[](includes/3-plan-release-pipeline.md)]
15-
quiz:
16-
title: Check your knowledge
17-
questions:
18-
- content: "You have a great idea for a new web app. You have working code on your laptop, but you want feedback from your team before you continue. What's the fastest way to deploy your app to Azure so you can share it with your team?"
19-
choices:
20-
- content: "Build a CI/CD pipeline in Azure Pipelines."
21-
isCorrect: false
22-
explanation: "You benefit from continuous delivery as your app matures. Creating a full CI/CD pipeline might not be the fastest way to get feedback on your prototype."
23-
- content: 'Use Visual Studio to right-click publish your app.'
24-
isCorrect: true
25-
explanation: "Although our focus is on continuous delivery, you benefit from continuous delivery as your app matures. Right-click publishing is a perfect way to quickly get your idea in front of people."
26-
- content: "Run `xcopy` to upload the web app to a virtual machine (VM) that's running on Azure."
27-
isCorrect: false
28-
explanation: "Although you can use `xcopy` to deploy to a VM, you still have to worry about mapping the network drive, configuring the firewall, and starting the web app."
29-
- content: "To deploy to Azure App Service, what resources does Azure Pipelines need?"
30-
choices:
31-
- content: "A build artifact and a service connection."
32-
isCorrect: true
33-
explanation: "The build artifact is the application you want to deploy. A service connection provides secure access to your Azure subscription."
34-
- content: "A host name and an SSH key."
35-
isCorrect: false
36-
explanation: "Although you might use an SSH key to deploy to a virtual machine in your datacenter, Azure App Service doesn't require one."
37-
- content: "A host name and the encrypted username and password."
38-
isCorrect: false
39-
explanation: "Although you might use usernames and passwords to connect to Azure services or virtual machines, Azure App Service doesn't require them."
40-
- content: "Which of the following statements describes the relationship among tasks, stages, and jobs?"
41-
choices:
42-
- content: "A task is another name for a job. A stage can contain either tasks or jobs."
43-
isCorrect: false
44-
explanation: "Tasks are different from jobs. A job defines a series of steps and the agent those steps run on. A task defines an individual step."
45-
- content: "Stages break down into jobs, and jobs break down into tasks."
46-
isCorrect: true
47-
explanation: "Stages define each major phase of your pipeline. Each job defines a series of steps and the agent those steps run on. A task defines an individual step."
48-
- content: "Stages break down into tasks. A job schedules when each stage runs."
49-
isCorrect: false
50-
explanation: "A job defines a series of steps and the agent those steps run on. It doesn't schedule stages."
51-
52-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.3-plan-release-pipeline
3+
title: Plan a release pipeline by using Azure Pipelines
4+
metadata:
5+
title: Plan a release pipeline by using Azure Pipelines
6+
description: Plan a basic CD pipeline that runs on Azure Pipelines.
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 6
13+
content: |
14+
[!include[](includes/3-plan-release-pipeline.md)]
15+
quiz:
16+
title: Check your knowledge
17+
questions:
18+
- content: "You have a great idea for a new web app. You have working code on your laptop, but you want feedback from your team before you continue. What's the fastest way to deploy your app to Azure so you can share it with your team?"
19+
choices:
20+
- content: "Build a CI/CD pipeline in Azure Pipelines."
21+
isCorrect: false
22+
explanation: "You benefit from continuous delivery as your app matures. Creating a full CI/CD pipeline might not be the fastest way to get feedback on your prototype."
23+
- content: 'Use Visual Studio to right-click publish your app.'
24+
isCorrect: true
25+
explanation: "Although our focus is on continuous delivery, you benefit from continuous delivery as your app matures. Right-click publishing is a perfect way to quickly get your idea in front of people."
26+
- content: "Run `xcopy` to upload the web app to a virtual machine (VM) that's running on Azure."
27+
isCorrect: false
28+
explanation: "Although you can use `xcopy` to deploy to a VM, you still have to worry about mapping the network drive, configuring the firewall, and starting the web app."
29+
- content: "To deploy to Azure App Service, what resources does Azure Pipelines need?"
30+
choices:
31+
- content: "A build artifact and a service connection."
32+
isCorrect: true
33+
explanation: "The build artifact is the application you want to deploy. A service connection provides secure access to your Azure subscription."
34+
- content: "A host name and an SSH key."
35+
isCorrect: false
36+
explanation: "Although you might use an SSH key to deploy to a virtual machine in your datacenter, Azure App Service doesn't require one."
37+
- content: "A host name and the encrypted username and password."
38+
isCorrect: false
39+
explanation: "Although you might use usernames and passwords to connect to Azure services or virtual machines, Azure App Service doesn't require them."
40+
- content: "Which of the following statements describes the relationship among tasks, stages, and jobs?"
41+
choices:
42+
- content: "A task is another name for a job. A stage can contain either tasks or jobs."
43+
isCorrect: false
44+
explanation: "Tasks are different from jobs. A job defines a series of steps and the agent those steps run on. A task defines an individual step."
45+
- content: "Stages break down into jobs, and jobs break down into tasks."
46+
isCorrect: true
47+
explanation: "Stages define each major phase of your pipeline. Each job defines a series of steps and the agent those steps run on. A task defines an individual step."
48+
- content: "Stages break down into tasks. A job schedules when each stage runs."
49+
isCorrect: false
50+
explanation: "A job defines a series of steps and the agent those steps run on. It doesn't schedule stages."
51+
52+
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.4-set-up-environment
3-
title: Exercise - Set up your environment
4-
metadata:
5-
title: Exercise - Set up your environment
6-
description: Create your Azure DevOps project and Azure resources.
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 15
13-
content: |
14-
[!include[](includes/4-set-up-environment.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.4-set-up-environment
3+
title: Exercise - Set up your environment
4+
metadata:
5+
title: Exercise - Set up your environment
6+
description: Create your Azure DevOps project and Azure resources.
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 15
13+
content: |
14+
[!include[](includes/4-set-up-environment.md)]
15+
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.5-deploy-to-appservice
3-
title: Exercise - Deploy the web application to Azure App Service
4-
metadata:
5-
unitType: exercise
6-
title: Exercise - Deploy the web application to Azure App Service
7-
description: Deploy your web application to Azure App Service.
8-
ms.custom: devdivchpfy22, engagement-fy23
9-
ms.date: 08/14/2023
10-
author: ramiMSFT
11-
ms.author: rabououn
12-
ms.topic: unit
13-
durationInMinutes: 13
14-
content: |
15-
[!include[](includes/5-deploy-to-appservice.md)]
16-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.5-deploy-to-appservice
3+
title: Exercise - Deploy the web application to Azure App Service
4+
metadata:
5+
unitType: exercise
6+
title: Exercise - Deploy the web application to Azure App Service
7+
description: Deploy your web application to Azure App Service.
8+
ms.custom: devdivchpfy22, engagement-fy23
9+
ms.date: 04/29/2025
10+
author: ramiMSFT
11+
ms.author: rabououn
12+
ms.topic: unit
13+
durationInMinutes: 13
14+
content: |
15+
[!include[](includes/5-deploy-to-appservice.md)]
16+
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.6-monitor-pipeline-health
3-
title: Exercise - Monitor the health of your pipeline
4-
metadata:
5-
title: Exercise - Monitor the health of your pipeline
6-
description: Examine a few of the analytics features that Azure Pipelines provides.
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 3
13-
content: |
14-
[!include[](includes/6-monitor-pipeline-health.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.6-monitor-pipeline-health
3+
title: Exercise - Monitor the health of your pipeline
4+
metadata:
5+
title: Exercise - Monitor the health of your pipeline
6+
description: Examine a few of the analytics features that Azure Pipelines provides.
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 3
13+
content: |
14+
[!include[](includes/6-monitor-pipeline-health.md)]
15+
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.7-clean-up-environment
3-
title: Exercise - Clean up your environment
4-
metadata:
5-
title: Exercise - Clean up your environment
6-
description: Clean up your Azure DevOps project and your Azure resources.
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 7
13-
content: |
14-
[!include[](includes/7-clean-up-environment.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.7-clean-up-environment
3+
title: Exercise - Clean up your environment
4+
metadata:
5+
title: Exercise - Clean up your environment
6+
description: Clean up your Azure DevOps project and your Azure resources.
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 7
13+
content: |
14+
[!include[](includes/7-clean-up-environment.md)]
15+
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
### YamlMime:ModuleUnit
2-
uid: learn.azdo.create-release-pipeline.8-summary
3-
title: Summary
4-
metadata:
5-
title: Summary
6-
description: Summary
7-
ms.custom: devdivchpfy22, engagement-fy23
8-
ms.date: 08/14/2023
9-
author: ramiMSFT
10-
ms.author: rabououn
11-
ms.topic: unit
12-
durationInMinutes: 3
13-
content: |
14-
[!include[](includes/8-summary.md)]
15-
1+
### YamlMime:ModuleUnit
2+
uid: learn.azdo.create-release-pipeline.8-summary
3+
title: Summary
4+
metadata:
5+
title: Summary
6+
description: Summary
7+
ms.custom: devdivchpfy22, engagement-fy23
8+
ms.date: 04/29/2025
9+
author: ramiMSFT
10+
ms.author: rabououn
11+
ms.topic: unit
12+
durationInMinutes: 3
13+
content: |
14+
[!include[](includes/8-summary.md)]
15+

learn-pr/azure-devops/create-release-pipeline/includes/1-introduction.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ In this module, you'll continue your journey with the Tailspin team as they set
88

99
After completing this module, you'll be able to:
1010

11-
- Define what continuous delivery is, why it is important, and what tools you can use.
11+
- Define what continuous delivery is, why it's important, and what tools you can use.
1212
- Create a basic release pipeline in Azure Pipelines that deploys a web application to Azure
1313
App Service.
1414
- Examine pipeline analytics to understand the health and history of your releases.
@@ -32,7 +32,7 @@ You can get started with Azure and Azure DevOps for free. You don't need an Azur
3232

3333
## Meet the team
3434

35-
You met the *Space Game* web team at Tailspin Toys in previous modules. As a refresher, here's who you'll work with in this module.
35+
You met the *Space Game* web team at Tailspin Toys in previous modules. As a refresher, here's who you'll work with in this module:
3636

3737
:::row:::
3838

learn-pr/azure-devops/create-release-pipeline/includes/3-plan-release-pipeline.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
In this section, you'll follow along with Andy and Mara as they plan a basic CD pipeline that runs on Azure Pipelines.
22

3-
When it's done, they'll demo it to the rest of the team. The pipeline will serve as a POC that they'll improve on and expand as they learn more and get feedback from Tim and Amita.
3+
When it's done, they'll demo it to the rest of the team. The pipeline will serve as a POC on which they'll improve and expand as they learn more and get feedback from Tim and Amita.
44

55
## What are the parts of a basic CD pipeline?
66

@@ -37,7 +37,7 @@ An artifact is deployed to an environment. Azure Pipelines makes it easy to depl
3737

3838
In Azure Pipelines, the term environment has a second meaning. Here, an environment is an abstract representation of your deployment environment, such as a Kubernetes cluster, an App Service instance, or a virtual machine.
3939

40-
An Azure Pipelines environment records the deployment history to help you identify the source of changes. By using Azure Pipelines environments, you can also define security checks and ways to control how an artifact is promoted from one stage of a pipeline to another. What an environment includes depends on what you want to do with the artifact. An environment where you want to test the artifact will probably be defined differently than one where you want to deploy the artifact for your end users.
40+
An Azure Pipelines environment records the deployment history to help you identify the source of changes. By using Azure Pipelines environments, you can also define security checks and ways to control how an artifact is promoted from one stage of a pipeline to another. What an environment includes depends on what you want to do with the artifact. An environment where you want to test the artifact is probably defined differently than one where you want to deploy the artifact for your end users.
4141

4242
One way to define an Azure Pipelines environment is with a YAML file. Your YAML file includes an `environment` section, which specifies the Azure Pipelines environment, where you'll deploy your artifact.
4343

@@ -83,7 +83,7 @@ After a bit of research, Andy and Mara come up with the general steps that allow
8383
1. Provide a way for Azure Pipelines to authenticate access to that environment.
8484
1. Use Azure Pipelines tasks to deploy the build artifact to that environment.
8585

86-
**Mara:** According to our research, we need to create a _service connection_ to specify the target environment and authenticate access to it. After we define the service connection, it'll be available for all of our tasks to use. Then we need to use the built-in tasks [DownloadPipelineArtifact](/azure/devops/pipelines/tasks/utility/download-pipeline-artifact?azure-portal=true) to download the build artifact to the pipeline agent and [AzureWebApp](/azure/devops/pipelines/tasks/deploy/azure-rm-web-app?azure-portal=true) to deploy our application to Azure App Service.
86+
**Mara:** According to our research, we need to create a _service connection_ to specify the target environment and authenticate access to it. After we define the service connection, it'll be available for all of our tasks to use. Then we need to use the built-in tasks [DownloadPipelineArtifact@2](/azure/devops/pipelines/tasks/reference/download-pipeline-artifact-v2?azure-portal=true) to download the build artifact to the pipeline agent and [AzureWebApp@1](/azure/devops/pipelines/tasks/reference/azure-web-app-v1?azure-portal=true) to deploy our application to Azure App Service.
8787

8888
### What are jobs and strategies?
8989

0 commit comments

Comments
 (0)