Skip to content

Latest commit

 

History

History
136 lines (100 loc) · 5.06 KB

deploying-net-to-azure-app-service.md

File metadata and controls

136 lines (100 loc) · 5.06 KB
titleintroversionstypetopicsredirect_from
Deploying .NET to Azure App Service
You can deploy your .NET project to Azure App Service as part of your continuous deployment (CD) workflows.
fptghesghec
*
*
*
tutorial
CD
Azure App Service
/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure/deploying-net-to-azure-app-service

{% data reusables.actions.enterprise-github-hosted-runners %}

Introduction

This guide explains how to use {% data variables.product.prodname_actions %} to build and deploy a .NET project to Azure App Service.

Note

{% data reusables.actions.about-oidc-short-overview %} and AUTOTITLE.

Prerequisites

Before creating your {% data variables.product.prodname_actions %} workflow, you will first need to complete the following setup steps:

{% data reusables.actions.create-azure-app-plan %}

  1. Create a web app.

    For example, you can use the Azure CLI to create an Azure App Service web app with a .NET runtime:

    az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "DOTNET|5.0"

    In the command above, replace the parameters with your own values, where MY_WEBAPP_NAME is a new name for the web app.

{% data reusables.actions.create-azure-publish-profile %}

  1. Optionally, configure a deployment environment. {% data reusables.actions.about-environments %}

Creating the workflow

Once you've completed the prerequisites, you can proceed with creating the workflow.

The following example workflow demonstrates how to build and deploy a .NET project to Azure App Service when there is a push to the main branch.

Ensure that you set AZURE_WEBAPP_NAME in the workflow env key to the name of the web app you created. If the path to your project is not the repository root, change AZURE_WEBAPP_PACKAGE_PATH. If you use a version of .NET other than 5, change DOTNET_VERSION.

{% data reusables.actions.delete-env-key %}

{% data reusables.actions.actions-not-certified-by-github-comment %}{% data reusables.actions.actions-use-sha-pinning-comment %}name: Build and deploy ASP.Net Core app to an Azure Web Appenv: AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's nameAZURE_WEBAPP_PACKAGE_PATH: '.'# set this to the path to your web app project, defaults to the repository rootDOTNET_VERSION: '5'# set this to the .NET Core version to useon: push: branches: - mainjobs: build: runs-on: ubuntu-lateststeps: - uses: {% data reusables.actions.action-checkout %} - name: Set up .NET Coreuses: {% data reusables.actions.action-setup-dotnet %}with: dotnet-version: {% raw %}${{ env.DOTNET_VERSION }}{% endraw %} - name: Set up dependency caching for faster buildsuses: {% data reusables.actions.action-cache %}with: path: ~/.nuget/packageskey: {% raw %}${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}{% endraw %}restore-keys: | {% raw %}${{ runner.os }}-nuget-{% endraw %} - name: Build with dotnetrun: dotnet build --configuration Release - name: dotnet publishrun: dotnet publish -c Release -o {% raw %}${{env.DOTNET_ROOT}}{% endraw %}/myapp - name: Upload artifact for deployment jobuses: {% data reusables.actions.action-upload-artifact %}with: name: .net-apppath: {% raw %}${{env.DOTNET_ROOT}}{% endraw %}/myappdeploy: runs-on: ubuntu-latestneeds: buildenvironment: name: 'production'url: {% raw %}${{ steps.deploy-to-webapp.outputs.webapp-url }}{% endraw %}steps: - name: Download artifact from build jobuses: {% data reusables.actions.action-download-artifact %}with: name: .net-app - name: Deploy to Azure Web Appid: deploy-to-webappuses: azure/webapps-deploy@85270a1854658d167ab239bce43949edb336fa7cwith: app-name: {% raw %}${{ env.AZURE_WEBAPP_NAME }}{% endraw %}publish-profile: {% raw %}${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}{% endraw %}package: {% raw %}${{ env.AZURE_WEBAPP_PACKAGE_PATH }}{% endraw %}

Additional resources

The following resources may also be useful:

close