Dokumentassistent / .github /workflows /deploy-azure.yml
XQ
Update health check and cloud deployment
3f19c23
raw
history blame
1.91 kB
name: Deploy to Azure
on:
# Uncomment to auto-deploy after CI passes on main:
# workflow_run:
# workflows: [CI]
# types: [completed]
# branches: [main]
workflow_dispatch:
env:
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }}
ACR_NAME: ${{ vars.ACR_NAME }}
CONTAINER_APP_NAME: doc-assistant
IMAGE_NAME: doc-assistant
jobs:
deploy:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v4
- name: Login to Azure
uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Login to ACR
run: az acr login --name ${{ env.ACR_NAME }}
- name: Build and push image to ACR
run: |
IMAGE_TAG=${{ env.ACR_NAME }}.azurecr.io/${{ env.IMAGE_NAME }}:${{ github.sha }}
docker build -f Dockerfile.compose -t $IMAGE_TAG .
docker push $IMAGE_TAG
- name: Deploy to Container Apps
run: |
az containerapp update \
--name ${{ env.CONTAINER_APP_NAME }} \
--resource-group ${{ env.AZURE_RESOURCE_GROUP }} \
--image ${{ env.ACR_NAME }}.azurecr.io/${{ env.IMAGE_NAME }}:${{ github.sha }}
- name: Wait for readiness
run: |
APP_URL=$(az containerapp show \
--name ${{ env.CONTAINER_APP_NAME }} \
--resource-group ${{ env.AZURE_RESOURCE_GROUP }} \
--query properties.configuration.ingress.fqdn -o tsv)
for i in $(seq 1 30); do
if curl -sf "https://${APP_URL}/health/ready" > /dev/null 2>&1; then
echo "Application is ready"
exit 0
fi
echo "Waiting for readiness... ($i/30)"
sleep 10
done
echo "Readiness check timed out"
exit 1