Skip to content

fix: enhance deployment workflow with debug information and update mi… #14

fix: enhance deployment workflow with debug information and update mi…

fix: enhance deployment workflow with debug information and update mi… #14

# 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 NestJS app to Azure Web App - todo-backend
on:
push:
branches:
- main
paths:
- backend/**
- .github/workflows/main_todo-backend.yml
pull_request:
branches:
- main
paths:
- backend/**
- .github/workflows/main_todo-backend.yml
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read #This is required for actions/checkout
steps:
- uses: actions/checkout@v4
- name: Set up Node.js version
uses: actions/setup-node@v3
with:
node-version: '22.x'
cache: 'npm'
cache-dependency-path: backend/package-lock.json
- name: Cache Node.js modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: npm install, build, and test
working-directory: ./backend
run: |
npm ci
npm run build
- name: Prepare deployment package
working-directory: ./backend
run: |
mkdir -p deploy
cp -r dist deploy/
cp package*.json deploy/
cd deploy
npm ci --omit=dev
echo "=== Files to be deployed ==="
ls -laR
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: todo-backend-app
path: ./backend/deploy
deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write #This is required for requesting the JWT
contents: read #This is required for actions/checkout
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: todo-backend-app
path: ./app
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_07050C1823A943BCA3294705459E8CCE }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_68BE64B843314BEFA8BB76F1EDCDF827 }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_8DDEE5624FAC47198B75C646D687BA15 }}
- name: Debug - Show downloaded files
run: |
echo "=== Downloaded artifact contents ==="
ls -laR ./app
- name: 'Deploy to Azure Web App'
id: deploy-to-webapp
uses: azure/webapps-deploy@v3
with:
app-name: 'todo-backend'
slot-name: 'Production'
package: ./app
clean: true