Skip to content

Commit 8e22fa5

Browse files
Refactor deployment script to use PowerShell and improve logging
1 parent 262332a commit 8e22fa5

File tree

1 file changed

+53
-54
lines changed

1 file changed

+53
-54
lines changed

.github/workflows/deploy-v2-windows.yml

Lines changed: 53 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -469,94 +469,93 @@ jobs:
469469
470470
- name: Deploy using azd up and extract values (${{ github.event.inputs.waf_enabled == 'true' && 'WAF' || 'Non-WAF' }}+${{ (github.event.inputs.EXP == 'true' || github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID != '' || github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID != '') && 'EXP' || 'Non-EXP' }})
471471
id: get_output
472-
shell: bash
472+
shell: pwsh
473473
run: |
474-
set -e
475-
echo "Starting azd deployment..."
476-
echo "WAF Enabled: ${{ env.WAF_ENABLED }}"
477-
echo "EXP: ${{ env.EXP }}"
478-
echo "Using Docker Image Tag: ${{ steps.determine_image_tag.outputs.IMAGE_TAG }}"
474+
$ErrorActionPreference = "Stop"
475+
Write-Host "Starting azd deployment..."
476+
Write-Host "WAF Enabled: ${{ env.WAF_ENABLED }}"
477+
Write-Host "EXP: ${{ env.EXP }}"
478+
Write-Host "Using Docker Image Tag: ${{ steps.determine_image_tag.outputs.IMAGE_TAG }}"
479479
480480
# Generate current timestamp in desired format: YYYY-MM-DDTHH:MM:SS.SSSSSSSZ
481-
current_date=$(date -u +"%Y-%m-%dT%H:%M:%S.0000000Z")
481+
$current_date = (Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.0000000Z")
482482
483-
echo "Creating environment..."
484-
azd env new $ENV_NAME --no-prompt
485-
echo "Environment created: $ENV_NAME"
483+
Write-Host "Creating environment..."
484+
azd env new $env:ENV_NAME --no-prompt
485+
Write-Host "Environment created: $env:ENV_NAME"
486486
487-
echo "Setting default subscription..."
487+
Write-Host "Setting default subscription..."
488488
azd config set defaults.subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
489489
490490
# Set additional parameters
491491
azd env set AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
492-
azd env set AZURE_ENV_AI_DEPLOYMENTS_LOCATION="$AZURE_ENV_OPENAI_LOCATION"
493-
azd env set AZURE_LOCATION="$AZURE_LOCATION"
494-
azd env set AZURE_RESOURCE_GROUP="$RESOURCE_GROUP_NAME"
492+
azd env set AZURE_ENV_AI_DEPLOYMENTS_LOCATION="$env:AZURE_ENV_OPENAI_LOCATION"
493+
azd env set AZURE_LOCATION="$env:AZURE_LOCATION"
494+
azd env set AZURE_RESOURCE_GROUP="$env:RESOURCE_GROUP_NAME"
495495
azd env set AZURE_ENV_CONTAINER_IMAGE_TAG="${{ steps.determine_image_tag.outputs.IMAGE_TAG }}"
496496
azd env set AZURE_DEV_COLLECT_TELEMETRY="${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}"
497497
# Set ACR name only when building Docker image
498-
if [[ "${{ env.BUILD_DOCKER_IMAGE }}" == "true" ]]; then
498+
if ("${{ env.BUILD_DOCKER_IMAGE }}" -eq "true") {
499499
# Extract ACR name from login server and set as environment variable
500-
ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}" )
500+
$ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}"
501501
azd env set AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT="$ACR_NAME"
502-
echo "Set ACR name to: $ACR_NAME"
503-
else
504-
echo "Skipping ACR name configuration (using existing image)"
505-
fi
502+
Write-Host "Set ACR name to: $ACR_NAME"
503+
} else {
504+
Write-Host "Skipping ACR name configuration (using existing image)"
505+
}
506506
507-
if [[ "${{ env.EXP }}" == "true" ]]; then
508-
echo "✅ EXP ENABLED - Setting EXP parameters..."
507+
if ("${{ env.EXP }}" -eq "true") {
508+
Write-Host "✅ EXP ENABLED - Setting EXP parameters..."
509509
510510
# Set EXP variables dynamically
511-
if [[ -n "${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" ]]; then
512-
EXP_LOG_ANALYTICS_ID="${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
513-
else
514-
EXP_LOG_ANALYTICS_ID="${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
515-
fi
511+
if ("${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}" -ne "") {
512+
$EXP_LOG_ANALYTICS_ID = "${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
513+
} else {
514+
$EXP_LOG_ANALYTICS_ID = "${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}"
515+
}
516516
517-
if [[ -n "${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" ]]; then
518-
EXP_AI_PROJECT_ID="${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}"
519-
else
520-
EXP_AI_PROJECT_ID="${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_ID }}"
521-
fi
517+
if ("${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}" -ne "") {
518+
$EXP_AI_PROJECT_ID = "${{ github.event.inputs.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}"
519+
} else {
520+
$EXP_AI_PROJECT_ID = "${{ secrets.AZURE_ENV_FOUNDRY_PROJECT_ID }}"
521+
}
522522
523-
echo "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID"
524-
echo "AZURE_ENV_FOUNDRY_PROJECT_ID: $EXP_AI_PROJECT_ID"
523+
Write-Host "AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: $EXP_LOG_ANALYTICS_ID"
524+
Write-Host "AZURE_ENV_FOUNDRY_PROJECT_ID: $EXP_AI_PROJECT_ID"
525525
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID="$EXP_LOG_ANALYTICS_ID"
526526
azd env set AZURE_ENV_FOUNDRY_PROJECT_ID="$EXP_AI_PROJECT_ID"
527-
else
528-
echo "❌ EXP DISABLED - Skipping EXP parameters"
529-
fi
527+
} else {
528+
Write-Host "❌ EXP DISABLED - Skipping EXP parameters"
529+
}
530530
531531
# Deploy using azd up
532532
azd up --no-prompt
533533
534-
echo "✅ Deployment succeeded."
535-
echo "$DEPLOY_OUTPUT"
534+
Write-Host "✅ Deployment succeeded."
536535
537536
# Get deployment outputs using azd
538-
echo "Extracting deployment outputs..."
539-
DEPLOY_OUTPUT=$(azd env get-values --output json)
540-
echo "Deployment output: $DEPLOY_OUTPUT"
537+
Write-Host "Extracting deployment outputs..."
538+
$DEPLOY_OUTPUT = azd env get-values --output json | ConvertFrom-Json
539+
Write-Host "Deployment output: $($DEPLOY_OUTPUT | ConvertTo-Json -Depth 10)"
541540
542-
if [[ -z "$DEPLOY_OUTPUT" ]]; then
543-
echo "Error: Deployment output is empty. Please check the deployment logs."
541+
if (-not $DEPLOY_OUTPUT) {
542+
Write-Host "Error: Deployment output is empty. Please check the deployment logs."
544543
exit 1
545-
fi
544+
}
546545
547546
# Export variables only after successful deploy
548-
export CONTAINER_API_APPURL="https://$(echo "$DEPLOY_OUTPUT" | jq -r '.CONTAINER_API_APP_FQDN // empty')"
549-
echo "CONTAINER_API_APPURL=$CONTAINER_API_APPURL" >> $GITHUB_ENV
547+
$CONTAINER_API_APPURL = "https://$($DEPLOY_OUTPUT.CONTAINER_API_APP_FQDN)"
548+
"CONTAINER_API_APPURL=$CONTAINER_API_APPURL" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
550549
551-
export CONTAINER_API_APPNAME=$(echo "$DEPLOY_OUTPUT" | jq -r '.CONTAINER_API_APP_NAME // empty')
552-
echo "CONTAINER_API_APPNAME=$CONTAINER_API_APPNAME" >> $GITHUB_ENV
550+
$CONTAINER_API_APPNAME = $DEPLOY_OUTPUT.CONTAINER_API_APP_NAME
551+
"CONTAINER_API_APPNAME=$CONTAINER_API_APPNAME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
553552
554-
export CONTAINER_WEB_APPURL="https://$(echo "$DEPLOY_OUTPUT" | jq -r '.CONTAINER_WEB_APP_FQDN // empty')"
555-
echo "CONTAINER_WEB_APPURL=$CONTAINER_WEB_APPURL" >> $GITHUB_ENV
556-
echo "CONTAINER_WEB_APPURL=$CONTAINER_WEB_APPURL" >> $GITHUB_OUTPUT
553+
$CONTAINER_WEB_APPURL = "https://$($DEPLOY_OUTPUT.CONTAINER_WEB_APP_FQDN)"
554+
"CONTAINER_WEB_APPURL=$CONTAINER_WEB_APPURL" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
555+
"CONTAINER_WEB_APPURL=$CONTAINER_WEB_APPURL" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
557556
558-
export CONTAINER_WEB_APPNAME=$(echo "$DEPLOY_OUTPUT" | jq -r '.CONTAINER_WEB_APP_NAME // empty')
559-
echo "CONTAINER_WEB_APPNAME=$CONTAINER_WEB_APPNAME" >> $GITHUB_ENV
557+
$CONTAINER_WEB_APPNAME = $DEPLOY_OUTPUT.CONTAINER_WEB_APP_NAME
558+
"CONTAINER_WEB_APPNAME=$CONTAINER_WEB_APPNAME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
560559
561560
- name: Register schemas
562561
id: register

0 commit comments

Comments
 (0)