Skip to content

fix: deployment errors for the AI Agent GOV backend and enable a successful deploy to Azure Web App via GitHub Actions. #334

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 160 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
d6696c2
Ready for Azure deployment with CMS integration
Jul 14, 2025
71477a8
Add or update the Azure App Service build and deployment workflow config
somc-ai Jul 14, 2025
7d84e27
Update main_aiagentsgov.yml
somc-ai Jul 14, 2025
9bdbd0f
Update main_aiagentsgov.yml
somc-ai Jul 15, 2025
2714d1f
Update main_aiagentsgov.yml
somc-ai Jul 15, 2025
7d48f38
Update tsconfig.json
somc-ai Jul 15, 2025
53551bb
Update package.json
somc-ai Jul 15, 2025
803011a
Update event_utils.py
somc-ai Jul 15, 2025
abefae8
Update main_aiagentsgov.yml
somc-ai Jul 15, 2025
75259ce
Create web.config
somc-ai Jul 15, 2025
5cf71af
Update package.json
somc-ai Jul 15, 2025
fb9ce46
Update config.tsx
somc-ai Jul 15, 2025
9b53fd1
Update main_aiagentsgov.yml
somc-ai Jul 15, 2025
e5102bf
Update main_aiagentsgov.yml
somc-ai Jul 15, 2025
495a32f
Create Dockerfile.azure
somc-ai Jul 15, 2025
1d3c771
Create deploy-backend-azure.yml
somc-ai Jul 15, 2025
b2b2517
Create .dockerignore
somc-ai Jul 16, 2025
9949862
Update README.md
somc-ai Jul 16, 2025
16a4242
Update deploy-backend-azure.yml
somc-ai Jul 16, 2025
63ed9d0
Update README.md
somc-ai Jul 16, 2025
c0c6f9c
Update .dockerignore
somc-ai Jul 16, 2025
94007bd
Update deploy-backend-azure.yml
somc-ai Jul 16, 2025
5081e6f
Update app_kernel.py
somc-ai Jul 16, 2025
babcdad
Update main_aiagentsgov.yml
somc-ai Jul 16, 2025
92e07bc
Update deploy-backend-azure.yml
somc-ai Jul 16, 2025
bc96cef
Create deploy-backend-webapp.yml
somc-ai Jul 16, 2025
7f14916
Update deploy-backend-webapp.yml
somc-ai Jul 16, 2025
769ae8d
Update app_kernel.py
somc-ai Jul 16, 2025
e1587c7
Update app_kernel.py
somc-ai Jul 16, 2025
ec18ec6
Update app_kernel.py
somc-ai Jul 16, 2025
9394564
Update requirements.txt
somc-ai Jul 16, 2025
df4f400
Update requirements.txt
somc-ai Jul 16, 2025
4f9c759
Update deploy-backend-webapp.yml
somc-ai Jul 16, 2025
4efa57f
Update deploy-backend-webapp.yml
somc-ai Jul 16, 2025
b76c488
Add or update the Azure App Service build and deployment workflow config
somc-ai Jul 16, 2025
3f7e4df
Update deploy-backend-webapp.yml
somc-ai Jul 16, 2025
f8a7e2e
Update deploy-backend-webapp.yml
somc-ai Jul 16, 2025
e3c6ace
Create requirements.txt
somc-ai Jul 16, 2025
d9ab5db
Create app_kernel.py
somc-ai Jul 16, 2025
93a3dd3
Create __init__.py
somc-ai Jul 16, 2025
5c790fb
Update azure.yaml
somc-ai Jul 16, 2025
cc3f2c3
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
679a1cb
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
90c6c39
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
c66d36a
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
1978cc4
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
d4dca80
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
630db41
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
cc0dfd6
Update main_aiagentsgov-backend.yml
somc-ai Jul 16, 2025
381c031
Update azure.yaml
somc-ai Jul 17, 2025
601868f
Initial plan
Copilot Jul 17, 2025
986a5d3
Update deploy-backend-webapp.yml
somc-ai Jul 17, 2025
26aa51a
Update deploy-backend-webapp.yml
somc-ai Jul 17, 2025
bd44f10
Fix application import issues and basic setup
Copilot Jul 17, 2025
5e8a751
Update Azure deployment configuration and add deployment documentation
Copilot Jul 17, 2025
22884c2
Final deployment fixes: robust Docker configuration and comprehensive…
Copilot Jul 17, 2025
860710c
Merge pull request #2 from somc-ai/copilot/fix-018287c6-b2c0-405d-9da…
somc-ai Jul 17, 2025
4e663b5
Update deploy-backend-webapp.yml
somc-ai Jul 17, 2025
ef1cd6c
Update azure.yaml
somc-ai Jul 17, 2025
fcc9e12
Update azure.yaml
somc-ai Jul 17, 2025
b0d5a29
Create .deployment
somc-ai Jul 17, 2025
8416e0f
Update main_aiagentsgov-backend.yml
somc-ai Jul 17, 2025
21188fc
Update deploy-backend-webapp.yml
somc-ai Jul 17, 2025
b9c6cdb
Update deploy-backend-webapp.yml
somc-ai Jul 17, 2025
4376c74
Update main_aiagentsgov-backend.yml
somc-ai Jul 17, 2025
e94058b
Add or update the Azure App Service build and deployment workflow config
somc-ai Jul 17, 2025
d5e6fc9
Update requirements.txt
somc-ai Jul 17, 2025
b5c8f54
Update requirements.txt
somc-ai Jul 17, 2025
dc6e122
Initial plan
Copilot Jul 17, 2025
6a51bf3
Fix frontend API URL configuration for production deployment
Copilot Jul 17, 2025
01d5ee7
Update deployment documentation with frontend API URL fix
Copilot Jul 17, 2025
fbb5411
Merge pull request #3 from somc-ai/copilot/fix-855a18d0-efa5-45d6-838…
somc-ai Jul 18, 2025
f3ea68a
Initial plan
Copilot Jul 18, 2025
b76dd64
Merge pull request #4 from somc-ai/copilot/fix-89534505-4f98-4ded-80a…
somc-ai Jul 18, 2025
ad1ddc2
Initial plan
Copilot Jul 18, 2025
94b1cbd
Merge pull request #7 from somc-ai/copilot/fix-48553185-66e0-4a94-8a9…
somc-ai Jul 18, 2025
b5b3c81
Update main_backendaigovnieuw.yml
somc-ai Jul 18, 2025
1311e97
feat: update frontend dependencies with serve package for production …
somc-ai Jul 18, 2025
a46df1f
fix: improve Azure Web App deployment configuration
somc-ai Jul 18, 2025
35dc434
fix: update deployment to use Python 3.13 and improve Azure Web App s…
somc-ai Jul 18, 2025
e7c4ff3
feat: switch to Azure Container Apps deployment for better reliability
somc-ai Jul 18, 2025
18abd59
Fix environment variables for Container Apps deployment
somc-ai Jul 18, 2025
8f569e7
Complete Container Apps deployment workflow with all required environ…
somc-ai Jul 19, 2025
9b272e2
Add complete fullstack Container Apps deployment setup
somc-ai Jul 19, 2025
383ebc0
Complete fullstack Container Apps deployment setup
somc-ai Jul 19, 2025
100ce83
Trigger Container Apps deployment - test
somc-ai Jul 19, 2025
05a890a
Switch to West Europe Container Registry for optimal performance
somc-ai Jul 19, 2025
b5dba2b
FIX: Correct Container Registry login server URL
somc-ai Jul 19, 2025
6011496
Fix: Update all workflows to use working registry ca2a76f03945acr.azu…
somc-ai Jul 19, 2025
cf9ece3
🚀 TRIGGER: Deploy backend + frontend to Container Apps
somc-ai Jul 19, 2025
609c3fd
🚀 TRIGGER: Deploy to Container Apps NOW
somc-ai Jul 19, 2025
027f3e9
Create an auto-deploy file
somc-ai Jul 22, 2025
a4f58ec
Fix 400 error: Add mock response for input_task endpoint and bypass A…
somc-ai Jul 22, 2025
9cd39db
fix: implement mock response to bypass authentication error in input_…
somc-ai Jul 22, 2025
08e6752
trigger: force backend deployment workflow
somc-ai Jul 22, 2025
15ce7ee
fix: resolve app_kernel import error by setting PYTHONPATH and correc…
somc-ai Jul 22, 2025
8eb07ab
deploy: force Container Apps deployment with mock response fix
somc-ai Jul 22, 2025
d572221
Checkpoint from VS Code for coding agent session
somc-ai Jul 22, 2025
d954510
Initial plan
Copilot Jul 22, 2025
bc34516
Initial exploration - identified current deployment infrastructure
Copilot Jul 22, 2025
5dcfb67
Implement automated backend deployment script with comprehensive feat…
Copilot Jul 22, 2025
a22de0e
Add comprehensive upgrade summary and final documentation
Copilot Jul 22, 2025
8591800
Initial plan
Copilot Jul 22, 2025
6a95c11
Merge pull request #17 from somc-ai/copilot/fix-50a3b834-89af-4d03-b1…
somc-ai Jul 22, 2025
078ff5a
Initial plan
Copilot Jul 22, 2025
7bc1a93
Fix Docker Azure deployment issues - correct user creation order, PYT…
Copilot Jul 22, 2025
d46e5be
Merge PR #19: Fix 400/405 API endpoint error
somc-ai Jul 24, 2025
f30e3f7
Merge PR #20: Fix Azure Container Apps deployment failure
somc-ai Jul 24, 2025
0ea8529
Merge PR #21: Fix Dockerfile issues preventing Azure deployment
somc-ai Jul 24, 2025
e037894
Merge PR #22: Fix Azure Container Apps deployment configuration
somc-ai Jul 24, 2025
ae03dd7
fix: configure Azure authentication for Container Apps
devin-ai-integration[bot] Jul 24, 2025
ee24193
Merge pull request #23 from somc-ai/devin/1753362766-fix-azure-authen…
somc-ai Jul 24, 2025
159dc2b
fix: remove invalid workflow parameters for Container Apps deployment
devin-ai-integration[bot] Jul 24, 2025
1c35225
Fix workflow syntax for Azure authentication deployment
somc-ai Jul 24, 2025
f836786
fix: add AZURE_OPENAI_API_KEY environment variable for authentication
devin-ai-integration[bot] Jul 24, 2025
a80ef0a
Merge PR #25: Add Azure OpenAI API key authentication for Container Apps
somc-ai Jul 24, 2025
503865d
fix: add Azure authentication environment variables for DefaultAzureC…
devin-ai-integration[bot] Jul 24, 2025
11b2808
Merge PR #26: Fix Azure authentication for DefaultAzureCredential in …
somc-ai Jul 24, 2025
7742ae9
fix: use AZURE_CREDENTIALS for authentication instead of missing clie…
devin-ai-integration[bot] Jul 25, 2025
5522ae9
Fix Azure authentication using AZURE_CREDENTIALS secret
somc-ai Jul 25, 2025
3adc226
fix: remove non-existent Azure credential environment variables
devin-ai-integration[bot] Jul 25, 2025
bcc9615
Fix Container Apps authentication by removing non-existent secrets
somc-ai Jul 25, 2025
f927a03
fix: extract Azure credentials from AZURE_CREDENTIALS secret for Cont…
devin-ai-integration[bot] Jul 25, 2025
9ab0550
Fix Azure authentication by extracting credentials from AZURE_CREDENT…
somc-ai Jul 25, 2025
780f431
fix: use EnvironmentCredential when Azure environment variables are a…
devin-ai-integration[bot] Jul 25, 2025
a8da538
Fix Azure authentication by using EnvironmentCredential for Container…
somc-ai Jul 25, 2025
849751e
feat: add comprehensive Azure authentication debugging
devin-ai-integration[bot] Jul 25, 2025
15ac54e
Add comprehensive Azure authentication debugging
somc-ai Jul 25, 2025
c07befd
retry: trigger fresh Azure Container Apps deployment
devin-ai-integration[bot] Jul 25, 2025
cc7a57f
Retry Azure Container Apps deployment with debugging
somc-ai Jul 25, 2025
c07405a
fix: change environmentVariables YAML syntax to resolve Container App…
devin-ai-integration[bot] Jul 25, 2025
1481829
Fix Container Apps environment variables YAML syntax for Azure authen…
somc-ai Jul 25, 2025
9e26bde
Fix Container Apps environment variables using Azure CLI direct update
somc-ai Jul 25, 2025
7356feb
fix: use ClientSecretCredential for robust Azure authentication
devin-ai-integration[bot] Jul 25, 2025
59fa61b
Merge pull request #35 from somc-ai/devin/1753468679-fix-azure-authen…
somc-ai Jul 25, 2025
a2cd2ca
fix: comprehensive Container Apps environment variables with verifica…
devin-ai-integration[bot] Jul 25, 2025
20794e3
Merge pull request #36 from somc-ai/devin/1753470454-fix-container-ap…
somc-ai Jul 25, 2025
bc81c18
Initial plan
Copilot Jul 26, 2025
e017ae4
Initial plan
Copilot Jul 26, 2025
b56b110
Merge pull request #38 from somc-ai/copilot/fix-e45da9d6-619b-46b6-a0…
somc-ai Jul 26, 2025
2d9acdf
Merge pull request #37 from somc-ai/copilot/fix-54a146b7-38a2-4a1e-b8…
somc-ai Jul 26, 2025
54f4993
Fix frontend server: add build directory and fallback backend URL
somc-ai Jul 26, 2025
be7acb4
Merge frontend and backend fixes
somc-ai Jul 26, 2025
9c706b7
fix: improve frontend server for Azure deployment
somc-ai Jul 26, 2025
9535745
add: frontend test page for debugging Azure deployment
somc-ai Jul 26, 2025
2903f6e
feat: deploy working backend with agent-tools endpoint to Azure
somc-ai Jul 27, 2025
ad3f2d2
fix: working backend with 7 AI specialists ready for Azure deployment
somc-ai Jul 27, 2025
1ef03cb
fix: correct Azure Container Registry to ca2a76f03945acr.azurecr.io
somc-ai Jul 27, 2025
d92dde9
Enhance AI integration with real OpenAI responses for all specialists
somc-ai Jul 27, 2025
ec4b526
Fix app_kernel import issue in Azure Dockerfile
somc-ai Jul 27, 2025
cf247a8
Professional API: Add legacy endpoint support and comprehensive API d…
somc-ai Jul 27, 2025
c991c28
Fix: Filter AI responses to only selected agents
somc-ai Jul 27, 2025
274b73c
Trigger deployment for agent filtering fix
somc-ai Jul 27, 2025
62bd979
Enhance AI prompts for specific contextual analysis
somc-ai Jul 27, 2025
357d870
Add debug logging for Azure OpenAI troubleshooting
somc-ai Jul 27, 2025
186a62f
feat: frontend toont alleen Demografie, Wonen, Economie agents en bla…
somc-ai Jul 28, 2025
d548fc2
fix: backend toont nu Directus agents visueel en functioneel via /api…
somc-ai Jul 28, 2025
46b0d62
Create an auto-deploy file
somc-ai Jul 30, 2025
4f020ad
Create an auto-deploy file
somc-ai Jul 30, 2025
d547b18
Create an auto-deploy file
somc-ai Jul 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .deployment
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[config]
project = src/backend
49 changes: 49 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Python
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
*.so

# Virtual environments
.venv/
venv/
env/
ENV/

# Development
.git/
.gitignore
*.md
README*
LICENSE
tests/
test_*
*_test.py

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Logs
*.log
logs/

# Azure
.azure/
azure.yaml

# Frontend
../frontend/
../src/frontend/

# Large files
*.zip
*.tar.gz
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Trigger auto deployment for aiagentsfrontend2

# When this action will be executed
on:
# Automatically trigger it when detected changes in repo
push:
branches:
[ main ]
paths:
- '**'
- '.github/workflows/aiagentsfrontend2-AutoDeployTrigger-0cf35e2e-15fd-47a4-a226-5ca10a29dd5d.yml'

# Allow manual trigger
workflow_dispatch:

jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
id-token: write #This is required for requesting the OIDC JWT Token
contents: read #Required when GH token is used to authenticate with private repo

steps:
- name: Checkout to the branch
uses: actions/checkout@v2

- name: Azure Login
uses: azure/login@v2
with:
client-id: ${{ secrets.AIAGENTSFRONTEND2_AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AIAGENTSFRONTEND2_AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AIAGENTSFRONTEND2_AZURE_SUBSCRIPTION_ID }}

- name: Build and push container image to registry
uses: azure/container-apps-deploy-action@v2
with:
appSourcePath: ${{ github.workspace }}
_dockerfilePathKey_: _dockerfilePath_
_targetLabelKey_: _targetLabel_
registryUrl: ca2a76f03945acr.azurecr.io
registryUsername: ${{ secrets.AIAGENTSFRONTEND2_REGISTRY_USERNAME }}
registryPassword: ${{ secrets.AIAGENTSFRONTEND2_REGISTRY_PASSWORD }}
containerAppName: aiagentsfrontend2
resourceGroup: aiagentsgov
imageToBuild: ca2a76f03945acr.azurecr.io/aiagentsfrontend2:${{ github.sha }}
_buildArgumentsKey_: |
_buildArgumentsValues_


Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
name: Trigger auto deployment for backend-aiagents-gov

# When this action will be executed
# Retry deployment after debugging changes
on:
# Automatically trigger it when detected changes in repo
push:
branches:
[ main ]
paths:
- '**'
- '.github/workflows/backend-aiagents-gov-AutoDeployTrigger-66d7852e-1596-4a66-824a-0498253f1e64.yml'

# Allow manual trigger
workflow_dispatch:

jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
id-token: write #This is required for requesting the OIDC JWT Token
contents: read #Required when GH token is used to authenticate with private repo

steps:
- name: Checkout to the branch
uses: actions/checkout@v2

- name: Azure Login
uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- name: Extract Azure credentials
id: azure-creds
run: |
echo "Extracting Azure credentials from AZURE_CREDENTIALS secret..."
TENANT_ID=$(echo '${{ secrets.AZURE_CREDENTIALS }}' | jq -r '.tenantId')
CLIENT_ID=$(echo '${{ secrets.AZURE_CREDENTIALS }}' | jq -r '.clientId')
CLIENT_SECRET=$(echo '${{ secrets.AZURE_CREDENTIALS }}' | jq -r '.clientSecret')

echo "TENANT_ID extracted: ${TENANT_ID:0:8}..."
echo "CLIENT_ID extracted: ${CLIENT_ID:0:8}..."
echo "CLIENT_SECRET extracted: [REDACTED]"

echo "AZURE_TENANT_ID=$TENANT_ID" >> $GITHUB_OUTPUT
echo "AZURE_CLIENT_ID=$CLIENT_ID" >> $GITHUB_OUTPUT
echo "AZURE_CLIENT_SECRET=$CLIENT_SECRET" >> $GITHUB_OUTPUT

- name: Build and push container image to registry
uses: azure/container-apps-deploy-action@v2
with:
appSourcePath: ${{ github.workspace }}/src/backend
dockerfilePath: Dockerfile.azure
registryUrl: ca2a76f03945acr.azurecr.io
registryUsername: ${{ secrets.BACKENDAIAGENTSGOV_REGISTRY_USERNAME }}
registryPassword: ${{ secrets.BACKENDAIAGENTSGOV_REGISTRY_PASSWORD }}
containerAppName: backend-aiagents-gov
resourceGroup: rg-info-2259
imageToBuild: ca2a76f03945acr.azurecr.io/backend-aiagents-gov:${{ github.sha }}

- name: Update Container App environment variables using Azure CLI
run: |
echo "Setting environment variables directly on Container App..."

# Set environment variables with proper escaping
az containerapp update \
--name backend-aiagents-gov \
--resource-group rg-info-2259 \
--set-env-vars \
"AZURE_OPENAI_ENDPOINT=https://somc-ai-gov-openai.openai.azure.com/" \
"AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4o" \
"AZURE_OPENAI_API_VERSION=2024-08-01-preview" \
"AZURE_OPENAI_API_KEY=${{ secrets.AZURE_OPENAI_API_KEY }}" \
"AZURE_TENANT_ID=${{ steps.azure-creds.outputs.AZURE_TENANT_ID }}" \
"AZURE_CLIENT_ID=${{ steps.azure-creds.outputs.AZURE_CLIENT_ID }}" \
"AZURE_CLIENT_SECRET=${{ steps.azure-creds.outputs.AZURE_CLIENT_SECRET }}" \
"AZURE_AI_SUBSCRIPTION_ID=05cc117e-29ea-49f3-9428-c5d042340a91" \
"AZURE_AI_RESOURCE_GROUP=rg-info-2259" \
"AZURE_AI_PROJECT_NAME=ai-project-default" \
"AZURE_AI_AGENT_ENDPOINT=https://somc-ai-gov-openai.openai.azure.com/" \
"COSMOSDB_ENDPOINT=https://cosmos-somc-ai-gov.documents.azure.com:443/" \
"COSMOSDB_DATABASE=macae" \
"COSMOSDB_CONTAINER=memory" \
"BACKEND_API_URL=https://backend-aiagents-gov.victoriouscoast-531c9ceb.westeurope.azurecontainerapps.io" \
"FRONTEND_SITE_NAME=https://frontend-aiagents-gov.victoriouscoast-531c9ceb.westeurope.azurecontainerapps.io"

echo "Environment variables set successfully."

# Verify environment variables were set
echo "Verifying environment variables..."
az containerapp show \
--name backend-aiagents-gov \
--resource-group rg-info-2259 \
--query "properties.template.containers[0].env[?name=='AZURE_TENANT_ID'].value" \
--output tsv

# Force restart to ensure environment variables are loaded
echo "Forcing Container App restart to ensure environment variables are loaded..."
az containerapp revision restart \
--name backend-aiagents-gov \
--resource-group rg-info-2259 \
--revision $(az containerapp revision list \
--name backend-aiagents-gov \
--resource-group rg-info-2259 \
--query "[0].name" \
--output tsv)

echo "Container App restarted successfully with new environment variables."


37 changes: 37 additions & 0 deletions .github/workflows/deploy-backend-azure.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Deploy Backend to Azure Container App

on:
push:
branches:
- main
paths:
- 'src/backend/**'
workflow_dispatch:

jobs:
build-and-deploy:
runs-on: ubuntu-latest
env:
AZURE_CONTAINER_APP_NAME: camar01
AZURE_RESOURCE_GROUP: SomcAI-Project-RG
AZURE_REGION: swedencentral
DOCKERFILE_PATH: src/backend/Dockerfile.azure
REGISTRY_LOGIN_SERVER: somcregistrysweden.azurecr.io
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Log in to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}

- name: Build and push image to ACR
uses: azure/container-apps-deploy-action@v1
with:
appName: ${{ env.AZURE_CONTAINER_APP_NAME }}
resourceGroup: ${{ env.AZURE_RESOURCE_GROUP }}
imageToBuild: ${{ env.REGISTRY_LOGIN_SERVER }}/backend:${{ github.sha }}
dockerfilePath: ${{ env.DOCKERFILE_PATH }}
registryUrl: ${{ env.REGISTRY_LOGIN_SERVER }}
location: ${{ env.AZURE_REGION }}
82 changes: 82 additions & 0 deletions .github/workflows/deploy-backend-webapp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Build and deploy Python app to Azure Web App - aiagentsgov-backend

on:
push:
branches:
- main
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Install zip
run: sudo apt-get install zip

- name: Install dependencies
run: pip install -r src/backend/requirements.txt

- name: Create runtime.txt for Python version detection
run: echo "python-3.11" > src/backend/runtime.txt

- name: Create .deployment file for Azure
run: |
cat > src/backend/.deployment << 'EOF'
[config]
SCM_DO_BUILD_DURING_DEPLOYMENT=true
PYTHON_VERSION=3.11
EOF

- name: Maak startup.txt met startup command voor Azure
run: echo "gunicorn -w 1 -k uvicorn.workers.UvicornWorker app_kernel:app" > src/backend/startup.txt

- name: Zip alleen src/backend voor deployment (incl. runtime.txt, .deployment, azure.yaml + startup.txt)
run: |
cd src/backend
zip -r ../../release.zip . -x "venv/*" ".git/*" "*.zip"
cd ../..

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: python-app
path: release.zip

deploy:
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write
contents: read
steps:
- name: Download artifact from build job
uses: actions/download-artifact@v4
with:
name: python-app

- name: Unzip artifact
run: unzip release.zip

- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_A554F8148EC544B7A5FC4388C541F484 }}
tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_9A99394C1F8F440D9772F371113CBA48 }}
subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_989248AB5335474EABE443589D0AA894 }}

- name: Deploy to Azure Web App
uses: azure/webapps-deploy@v3
with:
app-name: 'aiagentsgov-backend'
slot-name: 'Production'
package: release.zip
Loading