Skip to content

Instantly share code, notes, and snippets.

@YodaheaD
Created April 8, 2026 12:46
Show Gist options
  • Select an option

  • Save YodaheaD/bd7db5de8c3512d787992ffa319f2f69 to your computer and use it in GitHub Desktop.

Select an option

Save YodaheaD/bd7db5de8c3512d787992ffa319f2f69 to your computer and use it in GitHub Desktop.
Next JS deployment to Azure App Service
# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
# More GitHub Actions for Azure: https://github.com/Azure/actions
name: Build and deploy Node.js app to Azure Web App - your-app-name
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
env:
MICROSOFT_ENTRA_TENANT: ${{ secrets.MICROSOFT_ENTRA_TENANT }}
MICROSOFT_ENTRA_TENANT_ID: ${{ secrets.MICROSOFT_ENTRA_TENANT_ID }}
MICROSOFT_ENTRA_TENANT_DOMAIN: ${{ secrets.MICROSOFT_ENTRA_TENANT_DOMAIN }}
MICROSOFT_ENTRA_USER_FLOW: ${{ secrets.MICROSOFT_ENTRA_USER_FLOW }}
MICROSOFT_ENTRA_CLIENT_ID: ${{ secrets.MICROSOFT_ENTRA_CLIENT_ID }}
MICROSOFT_ENTRA_CLIENT_SECRET: ${{ secrets.MICROSOFT_ENTRA_CLIENT_SECRET }}
MICROSOFT_API_CLIENT_ID: ${{ secrets.MICROSOFT_API_CLIENT_ID }}
APP_API_CLIENT_ID: ${{ secrets.APP_API_CLIENT_ID }}
MICROSOFT_API_SCOPE: ${{ secrets.MICROSOFT_API_SCOPE }}
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }}
permissions:
contents: read
steps:
- uses: actions/checkout@v6
- name: Set up Node.js version
uses: actions/setup-node@v6
with:
node-version: '22.x'
- name: npm install, build, and test
run: |
npm install
npm run build --if-present
npm run test --if-present
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v7
with:
name: node-app
include-hidden-files: true
path: .
deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write
contents: read
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v8
with:
name: node-app
path: ./node-app
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v3
with:
app-name: 'your-app-name'
slot-name: 'Production'
package: ./node-app
clean: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment