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+ # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions
4+
5+ name : Build and deploy Python app to Azure Web App - codejam
6+
7+ on :
8+ push :
9+ branches :
10+ - prod
11+ workflow_dispatch :
12+
13+ jobs :
14+ build :
15+ runs-on : ubuntu-latest
16+ permissions :
17+ contents : read # This is required for actions/checkout
18+
19+ steps :
20+ - uses : actions/checkout@v4
21+
22+ - name : Set up Python version
23+ uses : actions/setup-python@v5
24+ with :
25+ python-version : ' 3.12'
26+
27+ - name : Create and start virtual environment
28+ run : |
29+ python -m venv venv
30+ source venv/bin/activate
31+
32+ - name : Install dependencies
33+ run : pip install -r requirements.txt
34+
35+ - name : Collecting Static Files
36+ run : python manage.py collectstatic
37+
38+ # Optional: Add step to run tests here (PyTest, Django test suites, etc.)
39+
40+ - name : Zip artifact for deployment
41+ run : zip release.zip ./* -r
42+
43+ - name : Upload artifact for deployment jobs
44+ uses : actions/upload-artifact@v4
45+ with :
46+ name : python-app
47+ path : |
48+ release.zip
49+ !venv/
50+
51+ deploy :
52+ runs-on : ubuntu-latest
53+ needs : build
54+ environment :
55+ name : ' Production'
56+ url : ${{ steps.deploy-to-webapp.outputs.webapp-url }}
57+ permissions :
58+ id-token : write # This is required for requesting the JWT
59+ contents : read # This is required for actions/checkout
60+
61+ steps :
62+ - name : Download artifact from build job
63+ uses : actions/download-artifact@v4
64+ with :
65+ name : python-app
66+
67+ - name : Unzip artifact for deployment
68+ run : unzip release.zip
69+
70+
71+ - name : Login to Azure
72+ uses : azure/login@v2
73+ with :
74+ client-id : ${{ secrets.AZUREAPPSERVICE_CLIENTID_A1461F18A7404A3CBAB83496FA9FBF54 }}
75+ tenant-id : ${{ secrets.AZUREAPPSERVICE_TENANTID_FE4FF5F0DF1C4FDBA2B05ED3985C4E88 }}
76+ subscription-id : ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_611DAA6BB9FE4E498D5999B897745E1B }}
77+
78+ - name : ' Deploy to Azure Web App'
79+ uses : azure/webapps-deploy@v3
80+ id : deploy-to-webapp
81+ with :
82+ app-name : ' codejam'
83+ slot-name : ' Production'
84+
0 commit comments