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
64 changes: 2 additions & 62 deletions .github/workflows/job-deploy-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@ on:
IMAGE_TAG:
required: true
type: string
AZURE_ENV_GPT_MODEL_CAPACITY:
required: false
type: string
default: '10'
AZURE_NONAI_LOCATIONS:
required: false
type: string
default: ''
BUILD_DOCKER_IMAGE:
required: true
type: string
Expand Down Expand Up @@ -253,8 +245,6 @@ jobs:
INPUT_AZURE_LOCATION: ${{ inputs.AZURE_LOCATION }}
INPUT_RESOURCE_GROUP_NAME: ${{ inputs.RESOURCE_GROUP_NAME }}
INPUT_IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
INPUT_AZURE_ENV_GPT_MODEL_CAPACITY: ${{ inputs.AZURE_ENV_GPT_MODEL_CAPACITY }}
INPUT_AZURE_NONAI_LOCATIONS: ${{ inputs.AZURE_NONAI_LOCATIONS }}
INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
INPUT_EXP: ${{ inputs.EXP }}
INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
Expand All @@ -275,7 +265,6 @@ jobs:
azd env set AZURE_LOCATION="$INPUT_AZURE_LOCATION"
azd env set AZURE_RESOURCE_GROUP="$INPUT_RESOURCE_GROUP_NAME"
azd env set AZURE_ENV_IMAGETAG="$INPUT_IMAGE_TAG"
azd env set AZURE_ENV_GPT_MODEL_CAPACITY="${INPUT_AZURE_ENV_GPT_MODEL_CAPACITY:-10}"

if [[ "$INPUT_BUILD_DOCKER_IMAGE" == "true" ]]; then
ACR_NAME="${{ vars.ACR_TEST_LOGIN_SERVER }}"
Expand Down Expand Up @@ -308,57 +297,8 @@ jobs:
echo "❌ EXP DISABLED - Skipping EXP parameters"
fi

FALLBACK_REGIONS=()
if [[ -n "${INPUT_AZURE_NONAI_LOCATIONS:-}" ]]; then
IFS=',' read -ra RAW_REGIONS <<< "$INPUT_AZURE_NONAI_LOCATIONS"
for raw in "${RAW_REGIONS[@]}"; do
region=$(echo "$raw" | xargs)
if [[ -n "$region" ]]; then
FALLBACK_REGIONS+=("$region")
fi
done
fi

# Build ordered retry list: preferred selected region first, then other fallback regions.
RETRY_REGIONS=("$INPUT_AZURE_LOCATION")
for region in "${FALLBACK_REGIONS[@]}"; do
if [[ "$region" != "$INPUT_AZURE_LOCATION" ]]; then
RETRY_REGIONS+=("$region")
fi
done

DEPLOYMENT_SUCCESS=false
for region in "${RETRY_REGIONS[@]}"; do
echo ""
echo "🚀 Attempting deployment with AZURE_LOCATION='$region'"
azd env set AZURE_LOCATION="$region"

set +e
azd up --no-prompt 2>&1 | tee azd-up-output.log
AZD_EXIT_CODE=${PIPESTATUS[0]}
set -e

if [[ "$AZD_EXIT_CODE" -eq 0 ]]; then
DEPLOYMENT_SUCCESS=true
echo "✅ Deployment succeeded in region '$region'"
break
fi

if grep -q "InsufficientResourcesAvailable" azd-up-output.log; then
echo "⚠️ Region '$region' failed with InsufficientResourcesAvailable."
echo "## ⚠️ Deployment Region Retry" >> "$GITHUB_STEP_SUMMARY"
echo "Deployment attempt failed in region \`$region\` with InsufficientResourcesAvailable. Trying next fallback region if available." >> "$GITHUB_STEP_SUMMARY"
continue
fi

echo "❌ Deployment failed in region '$region' with non-retryable error."
exit "$AZD_EXIT_CODE"
done

if [[ "$DEPLOYMENT_SUCCESS" != "true" ]]; then
echo "❌ Deployment failed after trying all fallback regions: ${RETRY_REGIONS[*]}"
exit 1
fi
azd up --no-prompt
echo "✅ Deployment succeeded"

WEBAPP_URL=$(azd env get-value WEB_APP_URL)
echo "WEBAPP_URL=${WEBAPP_URL}" >> $GITHUB_ENV
Expand Down
61 changes: 3 additions & 58 deletions .github/workflows/job-deploy-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,6 @@ on:
IMAGE_TAG:
required: true
type: string
AZURE_ENV_GPT_MODEL_CAPACITY:
required: false
type: string
default: '10'
AZURE_NONAI_LOCATIONS:
required: false
type: string
default: ''
BUILD_DOCKER_IMAGE:
required: true
type: string
Expand Down Expand Up @@ -253,8 +245,6 @@ jobs:
INPUT_AZURE_LOCATION: ${{ inputs.AZURE_LOCATION }}
INPUT_RESOURCE_GROUP_NAME: ${{ inputs.RESOURCE_GROUP_NAME }}
INPUT_IMAGE_TAG: ${{ inputs.IMAGE_TAG }}
INPUT_AZURE_ENV_GPT_MODEL_CAPACITY: ${{ inputs.AZURE_ENV_GPT_MODEL_CAPACITY }}
INPUT_AZURE_NONAI_LOCATIONS: ${{ inputs.AZURE_NONAI_LOCATIONS }}
INPUT_BUILD_DOCKER_IMAGE: ${{ inputs.BUILD_DOCKER_IMAGE }}
INPUT_EXP: ${{ inputs.EXP }}
INPUT_AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID: ${{ inputs.AZURE_ENV_EXISTING_LOG_ANALYTICS_WORKSPACE_RID }}
Expand All @@ -278,8 +268,6 @@ jobs:
azd env set AZURE_LOCATION="$env:INPUT_AZURE_LOCATION"
azd env set AZURE_RESOURCE_GROUP="$env:INPUT_RESOURCE_GROUP_NAME"
azd env set AZURE_ENV_IMAGETAG="$env:INPUT_IMAGE_TAG"
$gptCapacity = if ($env:INPUT_AZURE_ENV_GPT_MODEL_CAPACITY) { $env:INPUT_AZURE_ENV_GPT_MODEL_CAPACITY } else { '10' }
azd env set AZURE_ENV_GPT_MODEL_CAPACITY="$gptCapacity"

# Set ACR name only when building Docker image
if ("$env:INPUT_BUILD_DOCKER_IMAGE" -eq "true") {
Expand Down Expand Up @@ -314,52 +302,9 @@ jobs:
Write-Host "EXP DISABLED - Skipping EXP parameters"
}

# Build ordered retry list: preferred selected region first, then other fallback regions.
$retryRegions = @("$env:INPUT_AZURE_LOCATION")
if ($env:INPUT_AZURE_NONAI_LOCATIONS) {
$fallbackRegions = $env:INPUT_AZURE_NONAI_LOCATIONS.Split(',') | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }
foreach ($region in $fallbackRegions) {
if ($region -ne $env:INPUT_AZURE_LOCATION) {
$retryRegions += $region
}
}
}

$deploymentSucceeded = $false
foreach ($region in $retryRegions) {
Write-Host ""
Write-Host "🚀 Attempting deployment with AZURE_LOCATION='$region'"
azd env set AZURE_LOCATION="$region"

azd up --no-prompt 2>&1 | Tee-Object -FilePath azd-up-output.log
$azdExitCode = $LASTEXITCODE

if ($azdExitCode -eq 0) {
$deploymentSucceeded = $true
Write-Host "✅ Deployment succeeded in region '$region'."
break
}

$outputText = ""
if (Test-Path "azd-up-output.log") {
$outputText = Get-Content "azd-up-output.log" -Raw
}

if ($outputText -match 'InsufficientResourcesAvailable') {
Write-Host "⚠️ Region '$region' failed with InsufficientResourcesAvailable."
"## ⚠️ Deployment Region Retry" | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Encoding utf8 -Append
"Deployment attempt failed in region `$region` with InsufficientResourcesAvailable. Trying next fallback region if available." | Out-File -FilePath $env:GITHUB_STEP_SUMMARY -Encoding utf8 -Append
continue
}

Write-Host "❌ Deployment failed in region '$region' with non-retryable error."
exit $azdExitCode
}

if (-not $deploymentSucceeded) {
Write-Host "❌ Deployment failed after trying all fallback regions: $($retryRegions -join ', ')"
exit 1
}
# Deploy using azd up
azd up --no-prompt
Write-Host "✅ Deployment succeeded."

$WEBAPP_URL = azd env get-value WEB_APP_URL
"WEBAPP_URL=$WEBAPP_URL" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
Expand Down
Loading
Loading