1+ # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
2+ # More GitHub Actions for Azure: https://github.com/Azure/actions
3+
4+ name : Build and deploy Node.js app to Azure Web App - todo-react-web
5+
6+ on :
7+ push :
8+ branches :
9+ - main
10+ workflow_dispatch :
11+
12+ jobs :
13+ build :
14+ runs-on : ubuntu-latest
15+ permissions :
16+ contents : read # This is required for actions/checkout
17+
18+ steps :
19+ - uses : actions/checkout@v4
20+
21+ - name : Set up Node.js version
22+ uses : actions/setup-node@v3
23+ with :
24+ node-version : ' 20.x'
25+
26+ - name : npm install, build, and test
27+ run : |
28+ npm install
29+ npm run build --if-present
30+ npm run test --if-present
31+
32+ - name : Zip artifact for deployment
33+ run : zip release.zip ./* -r
34+
35+ - name : Upload artifact for deployment job
36+ uses : actions/upload-artifact@v4
37+ with :
38+ name : node-app
39+ path : release.zip
40+
41+ deploy :
42+ runs-on : ubuntu-latest
43+ needs : build
44+
45+ permissions :
46+ id-token : write # This is required for requesting the JWT
47+ contents : read # This is required for actions/checkout
48+
49+ steps :
50+ - name : Download artifact from build job
51+ uses : actions/download-artifact@v4
52+ with :
53+ name : node-app
54+
55+ - name : Unzip artifact for deployment
56+ run : unzip release.zip
57+
58+ - name : Login to Azure
59+ uses : azure/login@v2
60+ with :
61+ client-id : ${{ secrets.AZUREAPPSERVICE_CLIENTID_C1B4D351BDB74A61AD5E0797197A525B }}
62+ tenant-id : ${{ secrets.AZUREAPPSERVICE_TENANTID_0CDBF267B2F642B9B6D6143AE30BFCA5 }}
63+ subscription-id : ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_F944686F48544FC38BF3CF689052F45F }}
64+
65+ - name : ' Deploy to Azure Web App'
66+ id : deploy-to-webapp
67+ uses : azure/webapps-deploy@v3
68+ with :
69+ app-name : ' todo-react-web'
70+ slot-name : ' Production'
71+ package : .
72+
0 commit comments