diff --git a/.github/workflows/deploy-backend.yml b/.github/workflows/deploy-backend.yml index 579b549..cc36e72 100644 --- a/.github/workflows/deploy-backend.yml +++ b/.github/workflows/deploy-backend.yml @@ -20,9 +20,15 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Create deployment package + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Install dependencies and create package run: | cd backend + pip install -r requirements.txt --target=".python_packages/lib/site-packages" zip -r ../deploy.zip . -x ".venv/*" ".env" "__pycache__/*" "*.pyc" ".git/*" "tests/*" - name: Login to Azure @@ -32,11 +38,15 @@ jobs: tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_62D66D4E65AC4A6C872064AD668AC691 }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_5D7B0564A55F4209A91149F2642D3F69 }} - - name: Deploy to Azure Web App (Oryx build) + - name: Configure startup command run: | - az webapp deploy \ + az webapp config set \ --name soc-backend \ --resource-group Operation \ - --src-path deploy.zip \ - --type zip \ - --async false + --startup-file startup.sh + + - name: Deploy to Azure Web App + uses: azure/webapps-deploy@v3 + with: + app-name: soc-backend + package: deploy.zip diff --git a/backend/startup.sh b/backend/startup.sh new file mode 100644 index 0000000..0bb9786 --- /dev/null +++ b/backend/startup.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Set PYTHONPATH to include bundled packages +export PYTHONPATH="/home/site/wwwroot/.python_packages/lib/site-packages:/home/site/wwwroot/antenv/lib/python3.12/site-packages:$PYTHONPATH" + +# Start gunicorn with uvicorn workers +gunicorn -w 2 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000 --timeout 120 app.main:app