Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
76 changes: 74 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ jobs:
rg_exists=$(az group exists --name ${{ env.RESOURCE_GROUP_NAME }})
if [ "$rg_exists" = "false" ]; then
echo "Resource group does not exist. Creating..."
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} --tags SecurityControl=Ignore CreatedBy="Pipeline" || { echo "Error creating resource group"; exit 1; }
az group create --name ${{ env.RESOURCE_GROUP_NAME }} --location ${{ env.AZURE_LOCATION }} --tags SecurityControl=Ignore CreatedBy="Pipeline" || { echo "Error creating resource group"; exit 1; }
else
echo "Resource group already exists."
fi
Expand Down Expand Up @@ -170,10 +170,15 @@ jobs:
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID
az account set --subscription $AZURE_SUBSCRIPTION_ID

# Capture deployment output to a log file
# Run CI tests
echo "=== Running CI Tests ==="
make ci 2>&1 | tee ci_output.log

# Deploy with verbose output
echo "=== Starting Deployment ==="
make deploy 2>&1 | tee deploy_output.log


# Try to extract URLs from deployment logs as backup
echo "=== Extracting URLs from deployment logs ==="
grep -oE "https://[a-zA-Z0-9.-]*\.azurewebsites\.net/" deploy_output.log | sort | uniq | head -2 | tee extracted_urls.txt || echo "No URLs found in logs"
Expand All @@ -195,6 +200,7 @@ jobs:
AZURE_ENV_NAME
AZURE_LOCATION
AZURE_RESOURCE_GROUP
AZURE_APP_SERVICE_HOSTING_MODEL=code
AUTH_ENABLED=false
AZURE_USE_AUTHENTICATION=false
AZURE_ENABLE_AUTH=false
Expand Down Expand Up @@ -288,6 +294,72 @@ jobs:
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Verify Deployment URLs
run: |
echo "=== Verifying Deployed Applications ==="
echo ""

# Wait a bit for services to be ready
echo "⏳ Waiting 2 minutes for services to stabilize..."
sleep 120

# Check Frontend URL
if [ -n "${{ env.FRONTEND_WEBSITE_URL }}" ]; then
echo "🔍 Checking Frontend URL: ${{ env.FRONTEND_WEBSITE_URL }}"

HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -L "${{ env.FRONTEND_WEBSITE_URL }}" || echo "000")

if [ "$HTTP_CODE" = "200" ]; then
echo "✅ Frontend is UP and responding (HTTP $HTTP_CODE)"

# Check if it's the actual app or default page
RESPONSE=$(curl -s -L "${{ env.FRONTEND_WEBSITE_URL }}")
if echo "$RESPONSE" | grep -q "Hey, Python developers"; then
echo "❌ WARNING: Frontend is showing DEFAULT Azure page - deployment failed!"
echo "This indicates the application code was NOT deployed correctly"
exit 1
else
echo "✅ Frontend appears to be the actual application"
fi
else
echo "❌ Frontend is DOWN or not responding properly (HTTP $HTTP_CODE)"
echo "⚠️ This may indicate a deployment issue - check App Service logs"
fi
else
echo "⚠️ Frontend URL not available"
fi

echo ""

# Check Admin URL
if [ -n "${{ env.ADMIN_WEBSITE_URL }}" ]; then
echo "🔍 Checking Admin URL: ${{ env.ADMIN_WEBSITE_URL }}"

HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -L "${{ env.ADMIN_WEBSITE_URL }}" || echo "000")

if [ "$HTTP_CODE" = "200" ]; then
echo "✅ Admin is UP and responding (HTTP $HTTP_CODE)"

# Check if it's the actual app or default page
RESPONSE=$(curl -s -L "${{ env.ADMIN_WEBSITE_URL }}")
if echo "$RESPONSE" | grep -q "Hey, Python developers"; then
echo "❌ WARNING: Admin is showing DEFAULT Azure page - deployment failed!"
echo "This indicates the application code was NOT deployed correctly"
exit 1
else
echo "✅ Admin appears to be the actual application"
fi
else
echo "❌ Admin is DOWN or not responding properly (HTTP $HTTP_CODE)"
echo "⚠️ This may indicate a deployment issue - check App Service logs"
fi
else
echo "⚠️ Admin URL not available"
fi

echo ""
echo "=== Deployment URL Verification Complete ==="

- name: Export PostgreSQL Host Endpoint from Makefile
run: |
# Only extract the PostgreSQL host endpoint from Makefile output
Expand Down
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,16 @@ deploy: azd-login ## Deploy everything to Azure

@azd env new ${AZURE_ENV_NAME} --location ${AZURE_LOCATION}
@azd env set AZURE_RESOURCE_GROUP ${AZURE_RESOURCE_GROUP}
@azd env set AZURE_APP_SERVICE_HOSTING_MODEL code

# Provision and deploy
@azd provision --no-prompt

@azd deploy web --no-prompt || true
@azd deploy function --no-prompt || true
@azd deploy adminweb --no-prompt


@azd env get-values > .env.temp
@cat .env.temp

Expand Down