Skip to content
Merged
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
73 changes: 7 additions & 66 deletions .github/workflows/deploy-orchestrator.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Reusable Deployment Workflow
name: Deployment orchestrator v2

on:
workflow_call:
Expand Down Expand Up @@ -61,69 +61,21 @@ on:
description: 'Trigger type (workflow_dispatch, pull_request, schedule)'
required: true
type: string
secrets:
AZURE_CLIENT_ID:
required: true
AZURE_CLIENT_SECRET:
required: true
AZURE_TENANT_ID:
required: true
AZURE_SUBSCRIPTION_ID:
required: true
ACR_TEST_LOGIN_SERVER:
required: true
ACR_TEST_USERNAME:
required: true
ACR_TEST_PASSWORD:
required: true
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
required: false
AZURE_ENV_FOUNDRY_PROJECT_ID:
required: false
EMAILNOTIFICATION_LOGICAPP_URL_TA:
required: false
outputs:
CONTAINER_WEB_APPURL:
description: "Container Web App URL"
value: ${{ jobs.deploy.outputs.CONTAINER_WEB_APPURL }}
RESOURCE_GROUP_NAME:
description: "Resource Group Name"
value: ${{ jobs.deploy.outputs.RESOURCE_GROUP_NAME }}

env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}

jobs:
display-configuration:
uses: ./.github/workflows/job-display-configuration.yml
with:
trigger_type: ${{ inputs.trigger_type }}
runner_os: ${{ inputs.runner_os }}
waf_enabled: ${{ inputs.waf_enabled }}
EXP: ${{ inputs.EXP }}
build_docker_image: ${{ inputs.build_docker_image }}
cleanup_resources: ${{ inputs.cleanup_resources }}
run_e2e_tests: ${{ inputs.run_e2e_tests }}
azure_location: ${{ inputs.azure_location }}
resource_group_name: ${{ inputs.resource_group_name }}
existing_webapp_url: ${{ inputs.existing_webapp_url }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}

docker-build:
needs: display-configuration
uses: ./.github/workflows/job-docker-build.yml
with:
trigger_type: ${{ inputs.trigger_type }}
build_docker_image: ${{ inputs.build_docker_image }}
secrets:
ACR_TEST_LOGIN_SERVER: ${{ secrets.ACR_TEST_LOGIN_SERVER }}
ACR_TEST_USERNAME: ${{ secrets.ACR_TEST_USERNAME }}
ACR_TEST_PASSWORD: ${{ secrets.ACR_TEST_PASSWORD }}
secrets: inherit

deploy:
if: always() && (inputs.trigger_type != 'workflow_dispatch' || inputs.existing_webapp_url == '' || inputs.existing_webapp_url == null)
needs: [display-configuration, docker-build]
needs: docker-build
uses: ./.github/workflows/job-deploy.yml
with:
trigger_type: ${{ inputs.trigger_type }}
Expand All @@ -137,14 +89,8 @@ jobs:
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
docker_image_tag: ${{ needs.docker-build.outputs.IMAGE_TAG }}
secrets:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ACR_TEST_LOGIN_SERVER: ${{ secrets.ACR_TEST_LOGIN_SERVER }}
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
AZURE_ENV_FOUNDRY_PROJECT_ID: ${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_ID }}
run_e2e_tests: ${{ inputs.run_e2e_tests }}
secrets: inherit

e2e-test:
if: always() && ((needs.deploy.result == 'success' && needs.deploy.outputs.CONTAINER_WEB_APPURL != '') || (inputs.existing_webapp_url != '' && inputs.existing_webapp_url != null)) && (inputs.trigger_type != 'workflow_dispatch' || (inputs.run_e2e_tests != 'None' && inputs.run_e2e_tests != '' && inputs.run_e2e_tests != null))
Expand Down Expand Up @@ -172,8 +118,7 @@ jobs:
QUOTA_FAILED: ${{ needs.deploy.outputs.QUOTA_FAILED }}
TEST_SUCCESS: ${{ needs.e2e-test.outputs.TEST_SUCCESS }}
TEST_REPORT_URL: ${{ needs.e2e-test.outputs.TEST_REPORT_URL }}
secrets:
EMAILNOTIFICATION_LOGICAPP_URL_TA: ${{ secrets.EMAILNOTIFICATION_LOGICAPP_URL_TA }}
secrets: inherit

cleanup-deployment:
if: always() && needs.deploy.result == 'success' && needs.deploy.outputs.RESOURCE_GROUP_NAME != '' && inputs.existing_webapp_url == '' && (inputs.trigger_type != 'workflow_dispatch' || inputs.cleanup_resources == true || inputs.cleanup_resources == null)
Expand All @@ -189,8 +134,4 @@ jobs:
AZURE_ENV_OPENAI_LOCATION: ${{ needs.deploy.outputs.AZURE_ENV_OPENAI_LOCATION }}
ENV_NAME: ${{ needs.deploy.outputs.ENV_NAME }}
IMAGE_TAG: ${{ needs.deploy.outputs.IMAGE_TAG }}
secrets:
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
secrets: inherit
13 changes: 2 additions & 11 deletions .github/workflows/job-cleanup-deployment.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Cleanup Deployment Job
name: Cleanup Deployment Job v2

on:
workflow_call:
Expand Down Expand Up @@ -41,15 +41,6 @@ on:
description: 'Docker Image Tag'
required: true
type: string
secrets:
AZURE_CLIENT_ID:
required: true
AZURE_CLIENT_SECRET:
required: true
AZURE_TENANT_ID:
required: true
AZURE_SUBSCRIPTION_ID:
required: true

jobs:
cleanup-deployment:
Expand Down Expand Up @@ -109,7 +100,7 @@ jobs:
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| **Resouce Group deletion Status** | ${{ steps.delete_rg.outcome == 'success' && '✅ Initiated' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| **Resource Group deletion Status** | ${{ steps.delete_rg.outcome == 'success' && '✅ Initiated' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| **Resource Group** | \`${{ env.RESOURCE_GROUP_NAME }}\` |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [[ "${{ steps.delete_rg.outcome }}" == "success" ]]; then
Expand Down
45 changes: 19 additions & 26 deletions .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Deploy Steps - Linux
name: Deploy Steps - Linux v2

on:
workflow_call:
Expand All @@ -24,49 +24,42 @@ on:
EXP:
required: true
type: string
WAF_ENABLED:
required: false
type: string
default: 'false'
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
required: false
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
required: false
type: string
secrets:
AZURE_CLIENT_ID:
required: true
AZURE_CLIENT_SECRET:
required: true
AZURE_TENANT_ID:
required: true
AZURE_SUBSCRIPTION_ID:
required: true
ACR_TEST_LOGIN_SERVER:
required: true
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
required: false
AZURE_ENV_FOUNDRY_PROJECT_ID:
required: false
outputs:
CONTAINER_WEB_APPURL:
description: "Container Web App URL"
value: ${{ jobs.deploy-linux.outputs.CONTAINER_WEB_APPURL }}
invoice_schema_id:
description: "Invoice Schema ID"
value: ${{ jobs.deploy-linux.outputs.invoice_schema_id }}
propertydamageclaimform_schema_id:
description: "Property Damage Claim Form Schema ID"
value: ${{ jobs.deploy-linux.outputs.propertydamageclaimform_schema_id }}

jobs:
deploy-linux:
runs-on: ubuntu-latest
env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
outputs:
CONTAINER_WEB_APPURL: ${{ steps.get_output_linux.outputs.CONTAINER_WEB_APPURL }}
invoice_schema_id: ${{ steps.register_linux.outputs.invoice_schema_id }}
propertydamageclaimform_schema_id: ${{ steps.register_linux.outputs.propertylossdamageclaimform_schema_id }}
steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Configure Parameters Based on WAF Setting
shell: bash
run: |
if [[ "${{ inputs.WAF_ENABLED }}" == "true" ]]; then
cp infra/main.waf.parameters.json infra/main.parameters.json
echo "✅ Successfully copied WAF parameters to main parameters file"
else
echo "🔧 Configuring Non-WAF deployment - using default main.parameters.json..."
fi

- name: Setup Azure CLI
shell: bash
run: |
Expand All @@ -91,7 +84,7 @@ jobs:
id: get_output_linux
shell: bash
run: |
set -e
set -e
echo "Starting azd deployment..."
echo "EXP: ${{ inputs.EXP }}"
echo "Using Docker Image Tag: ${{ inputs.IMAGE_TAG }}"
Expand Down Expand Up @@ -219,10 +212,10 @@ jobs:
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| **Job Status** | ${{ job.status == 'success' && '✅ Success' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| **Resource Group** | \`${{ inputs.RESOURCE_GROUP_NAME }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Configuration Type** | \`${{ inputs.WAF_ENABLED == 'true' && inputs.EXP == 'true' && 'WAF + EXP' || inputs.WAF_ENABLED == 'true' && inputs.EXP != 'true' && 'WAF + Non-EXP' || inputs.WAF_ENABLED != 'true' && inputs.EXP == 'true' && 'Non-WAF + EXP' || 'Non-WAF + Non-EXP' }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Azure Region (Infrastructure)** | \`${{ inputs.AZURE_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Azure OpenAI Region** | \`${{ inputs.AZURE_ENV_OPENAI_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Docker Image Tag** | \`${{ inputs.IMAGE_TAG }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Environment Name** | \`${{ inputs.ENV_NAME }}\` |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [[ "${{ job.status }}" == "success" ]]; then
echo "### ✅ Deployment Details" >> $GITHUB_STEP_SUMMARY
Expand Down
42 changes: 18 additions & 24 deletions .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Deploy Steps - Windows
name: Deploy Steps - Windows v2

on:
workflow_call:
Expand All @@ -24,49 +24,42 @@ on:
EXP:
required: true
type: string
WAF_ENABLED:
required: false
type: string
default: 'false'
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
required: false
type: string
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:
required: false
type: string
secrets:
AZURE_CLIENT_ID:
required: true
AZURE_CLIENT_SECRET:
required: true
AZURE_TENANT_ID:
required: true
AZURE_SUBSCRIPTION_ID:
required: true
ACR_TEST_LOGIN_SERVER:
required: true
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:
required: false
AZURE_ENV_FOUNDRY_PROJECT_ID:
required: false
outputs:
CONTAINER_WEB_APPURL:
description: "Container Web App URL"
value: ${{ jobs.deploy-windows.outputs.CONTAINER_WEB_APPURL }}
invoice_schema_id:
description: "Invoice Schema ID"
value: ${{ jobs.deploy-windows.outputs.invoice_schema_id }}
propertydamageclaimform_schema_id:
description: "Property Damage Claim Form Schema ID"
value: ${{ jobs.deploy-windows.outputs.propertydamageclaimform_schema_id }}

jobs:
deploy-windows:
runs-on: windows-latest
env:
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
outputs:
CONTAINER_WEB_APPURL: ${{ steps.get_output_windows.outputs.CONTAINER_WEB_APPURL }}
invoice_schema_id: ${{ steps.register_windows.outputs.invoice_schema_id }}
propertydamageclaimform_schema_id: ${{ steps.register_windows.outputs.propertylossdamageclaimform_schema_id }}
steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Configure Parameters Based on WAF Setting
shell: bash
run: |
if [[ "${{ inputs.WAF_ENABLED }}" == "true" ]]; then
cp infra/main.waf.parameters.json infra/main.parameters.json
echo "✅ Successfully copied WAF parameters to main parameters file"
else
echo "🔧 Configuring Non-WAF deployment - using default main.parameters.json..."
fi

- name: Setup Azure Developer CLI (Windows)
uses: Azure/setup-azd@v2

Expand Down Expand Up @@ -207,6 +200,7 @@ jobs:
echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| **Job Status** | ${{ job.status == 'success' && '✅ Success' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| **Configuration Type** | \`${{ inputs.WAF_ENABLED == 'true' && inputs.EXP == 'true' && 'WAF + EXP' || inputs.WAF_ENABLED == 'true' && inputs.EXP != 'true' && 'WAF + Non-EXP' || inputs.WAF_ENABLED != 'true' && inputs.EXP == 'true' && 'Non-WAF + EXP' || 'Non-WAF + Non-EXP' }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Resource Group** | \`${{ inputs.RESOURCE_GROUP_NAME }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Azure Region (Infrastructure)** | \`${{ inputs.AZURE_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
echo "| **Azure OpenAI Region** | \`${{ inputs.AZURE_ENV_OPENAI_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
Expand Down
Loading
Loading