{"id":3101,"date":"2022-04-22T10:30:42","date_gmt":"2022-04-22T10:30:42","guid":{"rendered":"https:\/\/exceedthecloud.com\/?p=3101"},"modified":"2022-04-22T10:43:50","modified_gmt":"2022-04-22T10:43:50","slug":"implementing-github-actions-by-using-devops-starter","status":"publish","type":"post","link":"https:\/\/exceedthecloud.com\/?p=3101","title":{"rendered":"Implementing GitHub Actions by using DevOps Starter"},"content":{"rendered":"\n<p>In this lab, you will learn how to implement a GitHub Action workflow that deploys an Azure web app by using DevOps Starter.<\/p>\n\n\n\n<p>After you complete this lab, you will be able to:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Implement a GitHub Action workflow by using DevOps Starter<\/li><li>Explain the basic characteristics of GitHub Action workflows<\/li><\/ul>\n\n\n\n<p>Review applications required for this lab<\/p>\n\n\n\n<p>Identify the applications that you\u2019ll use in this lab:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Microsoft Edge<\/li><\/ul>\n\n\n\n<p><strong>Prepare an Azure subscription<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Identify an existing Azure subscription or create a new one.<\/li><li>Verify that you have a Microsoft account or an Azure AD account with the Contributor or the Owner role in the Azure subscription. For details, refer to&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/role-based-access-control\/role-assignments-list-portal\" target=\"_blank\" rel=\"noreferrer noopener\">List Azure role assignments using the Azure portal<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/roles\/manage-roles-portal#view-my-roles\" target=\"_blank\" rel=\"noreferrer noopener\">View and assign administrator roles in Azure Active Directory<\/a>.<\/li><\/ul>\n\n\n\n<p><strong>Prepare a GitHub account<\/strong><\/p>\n\n\n\n<p>If you don\u2019t already have a GitHub account that you can use for this lab, follow instructions available at&nbsp;<a href=\"https:\/\/github.com\/join\" target=\"_blank\" rel=\"noreferrer noopener\">Signing up for a new GitHub account<\/a>&nbsp;to create one.<\/p>\n\n\n\n<p><strong>Exercise 1 : Create a DevOps Starter project<\/strong><\/p>\n\n\n\n<p>In this exercise, you will use DevOps Starter to facilitate provisioning of a number of resources, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A GitHub repository hosting:<ul><li>Code of a sample .NET Core web site.<\/li><li>Azure Resource Manager templates that deploy an Azure web app hosting the web site code.<\/li><li>A workflow that builds, deploys, and tests the web site.<\/li><\/ul><\/li><li>An Azure web app, automatically deployed by using the GitHub workflow.<\/li><\/ul>\n\n\n\n<p><strong>Task 1: Create DevOps Starter project<\/strong><\/p>\n\n\n\n<p>In this task, you will create an Azure DevOps Starter project that automatically sets up a GitHub repository, as well as creates and triggers a GitHub workflow that deploys an Azure web app, based on the content of the GitHub repository.<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>From the lab computer, start a web browser, navigate to the&nbsp;<a href=\"https:\/\/portal.azure.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Azure Portal<\/strong><\/a>, and sign in with the user account that has at least the Contributor role in the Azure subscription you are using in this lab.<\/li><li>In the Azure portal, search for and select the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;resource type and, on the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, click either&nbsp;<strong>+ Add<\/strong>,&nbsp;<strong>+ New<\/strong>, or&nbsp;<strong>+ Create<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"214\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture1-6.png\" alt=\"\" class=\"wp-image-3102\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture1-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture1-6-300x103.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>Start fresh with a new application<\/strong>&nbsp;page of the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, click the&nbsp;<strong>here<\/strong>&nbsp;link in the&nbsp;<strong>Setting up DevOps starter with GitHub, click here<\/strong>&nbsp;text.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"402\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture2-6.png\" alt=\"\" class=\"wp-image-3103\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture2-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture2-6-300x193.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p><strong>Note<\/strong>: This will display the&nbsp;<strong>DevOps starter settings<\/strong>&nbsp;blade.<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the&nbsp;<strong>DevOps starter settings<\/strong>&nbsp;blade, ensure that the&nbsp;<strong>GitHub<\/strong>&nbsp;tile is selected and click&nbsp;<strong>Done<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"832\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture3-6.png\" alt=\"\" class=\"wp-image-3104\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture3-6.png 412w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture3-6-149x300.png 149w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/figure>\n\n\n\n<p>Back on the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, click&nbsp;<strong>Next: Framework &gt;<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"419\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture4-6.png\" alt=\"\" class=\"wp-image-3105\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture4-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture4-6-300x201.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>Choose an application framework<\/strong>&nbsp;page of the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, select the&nbsp;<strong>ASP.NET Core<\/strong>&nbsp;tile and click&nbsp;<strong>Next: Service &gt;<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"805\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture5-6.png\" alt=\"\" class=\"wp-image-3106\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture5-6.png 525w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture5-6-196x300.png 196w\" sizes=\"auto, (max-width: 525px) 100vw, 525px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>Select an Azure service to deploy the application<\/strong>&nbsp;page of the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, ensure that the&nbsp;<strong>Windows Web App<\/strong>&nbsp;tile is selected and click&nbsp;<strong>Next: Create &gt;<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"640\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture6-6.png\" alt=\"\" class=\"wp-image-3107\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture6-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture6-6-293x300.png 293w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>Select Repository and Subscription<\/strong>&nbsp;page of the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, click&nbsp;<strong>Authorize<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"545\" height=\"519\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture7-6.png\" alt=\"\" class=\"wp-image-3108\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture7-6.png 545w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture7-6-300x286.png 300w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" \/><\/figure>\n\n\n\n<p><strong>Note<\/strong>: This will display the&nbsp;<strong>Authorize Azure GitHub Actions<\/strong>&nbsp;pop-up web browser window.<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>In the&nbsp;<strong>Authorize Azure GitHub Actions<\/strong>&nbsp;pop-up window, review the required permissions and click&nbsp;<strong>Authorize AzureGithubActions<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"405\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture8-6.png\" alt=\"\" class=\"wp-image-3109\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture8-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture8-6-300x195.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p><strong>Note<\/strong>: This will redirect the web pop-up browser window to the Azure DevOps site, prompting you for your Azure DevOps information.<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>When prompted, in the pop-up web browser window, click&nbsp;<strong>Continue<\/strong>.<\/li><li>Back on the&nbsp;<strong>Select Repository and Subscription<\/strong>&nbsp;page of the&nbsp;<strong>DevOps Starter<\/strong>&nbsp;blade, specify the following settings and click&nbsp;<strong>Review + Create<\/strong>:<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><td>Setting<\/td><td>Value<\/td><\/tr><\/thead><tbody><tr><td>Organization<\/td><td>the name of GitHub account<\/td><\/tr><tr><td>Repository<\/td><td><strong>exceedm08l01<\/strong><\/td><\/tr><tr><td>Subscription<\/td><td>the name of the Azure subscription you are using for this lab<\/td><\/tr><tr><td>Web app name<\/td><td>any valid, globally unique host name in the&nbsp;<strong>azurewebsites.net<\/strong>&nbsp;DNS namespace<\/td><\/tr><tr><td>Location<\/td><td>the name of any Azure region in which you can provision an Azure web app<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Note<\/strong>: Wait for the provisioning to complete. This should take about 1 minute.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"786\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture9-6.png\" alt=\"\" class=\"wp-image-3110\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture9-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture9-6-238x300.png 238w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>Deploy_DevOps_Project_exceedm08l01 | Overview<\/strong>&nbsp;blade, click&nbsp;<strong>Go to Resource<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"274\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture10-6.png\" alt=\"\" class=\"wp-image-3111\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture10-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture10-6-300x132.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, on the&nbsp;<strong>GitHub Workflow<\/strong>&nbsp;tile, click&nbsp;<strong>Authorize<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"200\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture11-6.png\" alt=\"\" class=\"wp-image-3112\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture11-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture11-6-300x96.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the&nbsp;<strong>GitHub Authorization<\/strong>&nbsp;blade, click&nbsp;<strong>Authorize<\/strong>&nbsp;again.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\" start=\"2\"><li>Back on the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, monitor the progress of actions on the&nbsp;<strong>GitHub Workflow<\/strong>&nbsp;tile.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"333\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture12-6.png\" alt=\"\" class=\"wp-image-3113\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture12-6.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture12-6-300x160.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"320\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture13-5.png\" alt=\"\" class=\"wp-image-3114\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture13-5.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture13-5-300x154.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Note<\/strong>: Wait for the build, deployment, and functional tests jobs of the GitHub workflow to complete. This should take about 5 minutes.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Task 2: Review the results of creating the DevOps Starter project<\/strong><\/p>\n\n\n\n<p>In this task, you will review the results of creating the DevOps Starter project.<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>In the web browser window displaying the Azure portal, on the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, review the&nbsp;<strong>GitHub Workflow<\/strong>&nbsp;section and verify that the&nbsp;<strong>build<\/strong>,&nbsp;<strong>deploy<\/strong>, and&nbsp;<strong>Functional tests<\/strong>&nbsp;jobs completed successfully.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"286\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture14-4.png\" alt=\"\" class=\"wp-image-3115\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture14-4.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture14-4-300x138.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, review the&nbsp;<strong>Azure resources<\/strong>&nbsp;section and verify that they include an App Service web app instance and the corresponding Application Insights resource.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"467\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture15-4.png\" alt=\"\" class=\"wp-image-3116\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture15-4.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture15-4-300x225.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>At the top of the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, note the link to the&nbsp;<strong>Workflow file<\/strong>&nbsp;and the GitHub repository you created in the previous task.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"264\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture16-4.png\" alt=\"\" class=\"wp-image-3118\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture16-4.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture16-4-300x127.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>At the top of the&nbsp;<strong>exceedm08l01<\/strong>&nbsp;blade, click the link to the GitHub repository.<\/li><li>On the GitHub repository page, note the three folders labeled:<ul><li><strong>.github\\workflows<\/strong>&nbsp;&#8211; containing the YAML-formatted workflow file<\/li><li><strong>Application<\/strong>&nbsp;&#8211; containing the code of the sample web site<\/li><li><strong>ArmTemplates<\/strong>&nbsp;&#8211; containing the Azure Resource Manager templates that the workflow uses to provision Azure resources<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"271\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture17-4.png\" alt=\"\" class=\"wp-image-3119\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture17-4.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture17-4-300x130.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the GitHub repository page, click&nbsp;<strong>.github\/workflows<\/strong>&nbsp;and then, click the&nbsp;<strong>devops-starter-workflow.yml<\/strong>&nbsp;entry.<\/li><li>On the GitHub repository page displaying the content of the&nbsp;<strong>devops-starter-workflow.yml<\/strong>, review its content and note that it contains the&nbsp;<strong>build<\/strong>,&nbsp;<strong>deploy<\/strong>, and&nbsp;<strong>Functional tests<\/strong>&nbsp;job definitions.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"290\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture18-4.png\" alt=\"\" class=\"wp-image-3120\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture18-4.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture18-4-300x139.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the GitHub repository page, in the toolbar, click&nbsp;<strong>Actions<\/strong>.<\/li><li>On the GitHub repository page, on the&nbsp;<strong>Actions<\/strong>&nbsp;tab, in the&nbsp;<strong>All workflows<\/strong>&nbsp;section, click the entry representing the most recent workflow run.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"228\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture19-3.png\" alt=\"\" class=\"wp-image-3121\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture19-3.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture19-3-300x110.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>On the workflow run page, review the workflow status, as well as the listing of&nbsp;<strong>Annotations<\/strong>&nbsp;and&nbsp;<strong>Artifacts<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"177\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture20-3.png\" alt=\"\" class=\"wp-image-3122\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture20-3.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture20-3-300x85.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the GitHub repository page, in the toolbar, click&nbsp;<strong>Settings<\/strong>&nbsp;and, on the&nbsp;<strong>Settings<\/strong>&nbsp;tab, click&nbsp;<strong>Secrets<\/strong>.<\/li><li>On the&nbsp;<strong>Action secrets<\/strong>&nbsp;pane, note the&nbsp;<strong>AZURE_CREDENTIALS<\/strong>&nbsp;entry, representing the credentials necessary to access the target Azure subscription.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"334\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture21-2.png\" alt=\"\" class=\"wp-image-3123\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture21-2.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture21-2-300x161.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>Navigate to the&nbsp;<strong>exceedm08l01\/Application\/aspnet-core-dotnet-core\/Pages\/Index.cshtml<\/strong>&nbsp;GitHub repository page and, in the upper right corner, click the pencil icon to switch to the edit mode.<\/li><li>Change the line 19 to&nbsp;&lt;div class=&#8221;description line-1&#8243;&gt; GitHub Workflow has been successfully updated&lt;\/div&gt;.<\/li><li>Scroll down to the bottom of the page and click&nbsp;<strong>Commit changes<\/strong>.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"428\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture22-2.png\" alt=\"\" class=\"wp-image-3124\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture22-2.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture22-2-300x206.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>On the GitHub repository page, in the toolbar, click&nbsp;<strong>Actions<\/strong>.<\/li><li>In the&nbsp;<strong>All workflows<\/strong>&nbsp;section, click the&nbsp;<strong>Update Index.cshtml<\/strong>&nbsp;entry.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"174\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture23-1.png\" alt=\"\" class=\"wp-image-3125\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture23-1.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture23-1-300x84.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>In the&nbsp;<strong>devops-starter-workflow.yml<\/strong>&nbsp;section, monitor the progress of deployment and verify that it completed successfully.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"177\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture24-1.png\" alt=\"\" class=\"wp-image-3126\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture24-1.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture24-1-300x85.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Note<\/strong>: If the&nbsp;<strong>action using \u201cazure\/CLI@1\u201d fails<\/strong>, commit the following change to the&nbsp;<strong>devops-starter-workflow.yml<\/strong>&nbsp;file (change the default azure cli version) and verify it completes successfully: &#8220;`<\/p>\n\n\n\n<ul class=\"wp-block-list\" type=\"1\"><li>name: Deploy ARM Template uses: azure\/CLI@v1 continue-on-error: false with: azcliversion: 2.29.2 inlineScript: | az group create \u2013name \u201c$\u201d \u2013location \u201c$\u201d az deployment group create \u2013resource-group \u201c$\u201d \u2013template-file .\/ArmTemplates\/windows-webapp- template.json \u2013parameters webAppName=\u201d$\u201d hostingPlanName=\u201d$\u201d appInsightsLocation=\u201d$\u201d sku=\u201d$\u201d &#8220;`<\/li><li>Switch to the browser window displaying the DevOps Starter blade in the Azure portal and click the&nbsp;<strong>Browse<\/strong>&nbsp;link next to the&nbsp;<strong>Application endpoint<\/strong>&nbsp;entry.<\/li><li>In the newly opened web browser window, verify that the updated text representing the change you committed in the GitHub repo is displayed on the web app home page.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"470\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture25-1.png\" alt=\"\" class=\"wp-image-3127\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture25-1.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture25-1-300x226.png 300w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"386\" src=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture26-1.png\" alt=\"\" class=\"wp-image-3128\" srcset=\"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture26-1.png 624w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture26-1-300x186.png 300w, https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/Picture26-1-80x50.png 80w\" sizes=\"auto, (max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p><strong>Review<\/strong><\/p>\n\n\n\n<p>In this lab, you implemented a GitHub Action workflow that deploys an Azure web app by using DevOps Starter.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><mark class=\"kt-highlight\"><strong>Reminder<\/strong>: Don\u2019t forget to delete or shutdown all unused Azure resources after your labs for cost saving<\/mark><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this lab, you will learn how to implement a GitHub Action workflow that deploys an Azure web app by using DevOps Starter. After you complete this lab, you will be able to: Implement a GitHub Action workflow by using &hellip; <a href=\"https:\/\/exceedthecloud.com\/?p=3101\">Continued<\/a><\/p>\n","protected":false},"author":1,"featured_media":3130,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"kt_blocks_editor_width":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[16,4],"tags":[111,8,105,110,71],"class_list":["post-3101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-practical-labs-series","tag-asp-net","tag-azure","tag-devops","tag-github","tag-web-app"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/exceedthecloud.com\/wp-content\/uploads\/2022\/04\/istockphoto-962404026-612x612-1.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/3101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3101"}],"version-history":[{"count":2,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/3101\/revisions"}],"predecessor-version":[{"id":3133,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/posts\/3101\/revisions\/3133"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=\/wp\/v2\/media\/3130"}],"wp:attachment":[{"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exceedthecloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}