@צדיק-תמים
# 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 - ....-backend
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js version
uses: actions/setup-node@v4
with:
node-version: '18.x'
- name: Install backend dependencies
run: npm install
working-directory: ./backend
# (לא חובה כרגע)
# - name: Build and test backend (optional)
# run: |
# npm run build --if-present
# npm run test --if-present
# working-directory: ./backend
# *** שלב ה-ZIP עם החרגת node_modules ***
- name: Zip artifact for deployment
run: zip -r ../release.zip . -x "node_modules/*" # החרגת node_modules
working-directory: ./backend # הפקודה תרוץ בתוך תיקיית backend
- name: Upload artifact for deployment job
uses: actions/upload-artifact@v4
with:
name: node-app
path: release.zip # הנתיב לקובץ ה-zip שנוצר (בשורש ה-workspace)
deploy:
runs-on: ubuntu-latest
needs: build
environment:
name: 'Production'
url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
permissions:
id-token: write # נדרש עבור OIDC login
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: node-app # שם ה-artifact שהועלה בשלב ה-build
- name: Unzip artifact for deployment
run: unzip release.zip # פריסת ה-zip שהורד לתיקייה הנוכחית
- name: Login to Azure (OIDC)
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIEN,,,,,,,,,,,,,,E5 }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_EB64,,,,,,,,,62DDB18BC }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_F3,,,,,,,,,,,,,,,15 }}
- name: Deploy to Azure Web App
id: deploy-to-webapp
uses: azure/webapps-deploy@v3
with:
app-name: 'tipatzahav-backend'
slot-name: 'Production'
package: . # הנתיב לתוכן שנפרס (אחרי ה-unzip, זה התיקייה הנוכחית)
יש מצב שחלק מהקובץ נערך אחרי שהאחסון התמלא (כחלק מניסיון לטפל בזה...)