Setting up a GitHub Action to deploy a .Net Core web app to Azure App Service from your GitHub repository involves a couple steps. This blog post shows a detailed guide to help you set up a CI/CD pipeline using GitHub Actions.
Step 1: Create a GitHub Workflow File
- Navigate to your repository on GitHub.
- Create a new directory called
.github/workflows
in the root of your repository if it doesn't already exist. - Inside this directory, create a new file called
azure-deploy.yml
or any other descriptive name.
Step 2: Define the Workflow
Add the following content to your azure-deploy.yml
file. This configuration sets up a workflow that triggers on pushes to the main
branch and deploys to Azure App Service.
yamlname: Deploy to Azure Web App
on:
push:
branches:
- main # Or whatever the branch name from which you want to deploy is
jobs:
build-and-deploy:
runs-on: ubuntu-latest # Specifies the runner environment
steps:
- name: Checkout code
uses: actions/checkout@v2 # Checks out your repository under $GITHUB_WORKSPACE
- name: Set up .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: '8.0.x' # Specify your .NET version here
- name: Build with dotnet
run: dotnet build --configuration Release
- name: Publish
run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp
- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v2
with:
app-name: 'YourAppName' # Replace with your App Name
slot-name: 'production' # Optional: if using deployment slots
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{env.DOTNET_ROOT}}/myapp
Step 3: Configure Azure Credentials in GitHub Secrets
- Navigate to the Azure portal and go to your App Service.
- Download the Publish Profile:
- Select your web app.
- In the left sidebar, click on "Get publish profile" and download the file.
- Add the Publish Profile to GitHub Secrets:
- Go back to your repository on GitHub.
- Click on Settings > Secrets > Actions.
- Click New repository secret.
- Name the secret
AZURE_WEBAPP_PUBLISH_PROFILE
and paste the content of the publish profile you downloaded.
Step 4: Commit and Push the Workflow
Commit the azure-deploy.yml
file and push it to your repository. GitHub Actions will detect this new workflow file and start running the workflow on your next push to the main
branch.
Done. Hopefully 😄