9999
100100 - name : Generate Unique Docker Image Tag
101101 id : generate_docker_tag
102+ shell : bash
102103 run : |
103104 echo "🔨 Building new Docker image - generating unique tag..."
104105 # Generate unique tag for manual deployment runs
@@ -159,12 +160,14 @@ jobs:
159160 ${{ secrets.ACR_TEST_LOGIN_SERVER }}/contentprocessorweb:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }}
160161
161162 - name : Verify Docker Image Build
163+ shell : bash
162164 run : |
163165 echo "✅ Docker image successfully built and pushed"
164166 echo "Image tag: ${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}"
165167
166168 - name : Generate Docker Build Summary
167169 if : always()
170+ shell : bash
168171 run : |
169172 # Extract ACR name from the secret
170173 ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}")
@@ -213,6 +216,7 @@ jobs:
213216
214217 steps :
215218 - name : Display Workflow Configuration
219+ shell : bash
216220 run : |
217221 echo "🚀 ==================================="
218222 echo "📋 WORKFLOW CONFIGURATION SUMMARY"
@@ -250,6 +254,7 @@ jobs:
250254 echo "🚀 ==================================="
251255
252256 - name : Validate and Auto-Configure EXP
257+ shell : bash
253258 run : |
254259 echo "🔍 Validating EXP configuration..."
255260
@@ -272,17 +277,20 @@ jobs:
272277 uses : actions/checkout@v4
273278
274279 - name : Setup Azure CLI
280+ shell : bash
275281 run : |
276282 curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
277283 az --version # Verify installation
278284
279285 - name : Login to Azure
286+ shell : bash
280287 run : |
281288 az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
282289 az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
283290
284291 - name : Run Quota Check
285292 id : quota-check
293+ shell : bash
286294 run : |
287295 export AZURE_CLIENT_ID=${{ secrets.AZURE_CLIENT_ID }}
288296 export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
@@ -303,16 +311,19 @@ jobs:
303311 - name : Set Quota Failure Output
304312 id : quota_failure_output
305313 if : env.QUOTA_FAILED == 'true'
314+ shell : bash
306315 run : |
307316 echo "QUOTA_FAILED=true" >> $GITHUB_OUTPUT
308317 echo "Quota check failed - will notify via separate notification job"
309318
310319 - name : Fail Pipeline if Quota Check Fails
311320 if : env.QUOTA_FAILED == 'true'
321+ shell : bash
312322 run : exit 1
313323
314324 - name : Set Deployment Region
315325 id : set_region
326+ shell : bash
316327 run : |
317328 # Set AZURE_ENV_OPENAI_LOCATION from quota check result
318329 echo "Selected Region from Quota Check: $VALID_REGION"
@@ -333,6 +344,7 @@ jobs:
333344
334345 - name : Generate Resource Group Name
335346 id : generate_rg_name
347+ shell : bash
336348 run : |
337349 # Check if a resource group name was provided as input
338350 if [[ -n "${{ github.event.inputs.resource_group_name }}" ]]; then
@@ -348,21 +360,25 @@ jobs:
348360 fi
349361
350362 - name : Setup Azure Developer CLI
363+ shell : bash
351364 run : |
352365 curl -fsSL https://aka.ms/install-azd.sh | sudo bash
353366 azd version
354367
355368 - name : Login to Azure
356369 id : login-azure
370+ shell : bash
357371 run : |
358372 az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
359373 azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --client-secret ${{ secrets.AZURE_CLIENT_SECRET }} --tenant-id ${{ secrets.AZURE_TENANT_ID }}
360374
361375 - name : Install Bicep CLI
376+ shell : bash
362377 run : az bicep install
363378
364379 - name : Check and Create Resource Group
365380 id : check_create_rg
381+ shell : bash
366382 run : |
367383 set -e
368384 echo "🔍 Checking if resource group '$RESOURCE_GROUP_NAME' exists..."
@@ -379,6 +395,7 @@ jobs:
379395
380396 - name : Generate Unique Solution Prefix
381397 id : generate_solution_prefix
398+ shell : bash
382399 run : |
383400 set -e
384401 COMMON_PART="psldg"
@@ -390,6 +407,7 @@ jobs:
390407
391408 - name : Determine Docker Image Tag
392409 id : determine_image_tag
410+ shell : bash
393411 run : |
394412 if [[ "${{ env.BUILD_DOCKER_IMAGE }}" == "true" ]]; then
395413 # Use the tag from docker-build job if it was built
@@ -432,6 +450,7 @@ jobs:
432450
433451 - name : Generate Unique Environment Name
434452 id : generate_env_name
453+ shell : bash
435454 run : |
436455 COMMON_PART="pslc"
437456 TIMESTAMP=$(date +%s)
@@ -442,6 +461,7 @@ jobs:
442461 echo "ENV_NAME=${UNIQUE_ENV_NAME}" >> $GITHUB_OUTPUT
443462
444463 - name : Configure Parameters Based on WAF Setting
464+ shell : bash
445465 run : |
446466 if [[ "${{ env.WAF_ENABLED }}" == "true" ]]; then
447467 echo "🔧 Configuring WAF deployment - copying main.waf.parameters.json to main.parameters.json..."
@@ -458,6 +478,7 @@ jobs:
458478
459479 - 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' }})
460480 id : get_output
481+ shell : bash
461482 run : |
462483 set -e
463484 echo "Starting azd deployment..."
@@ -551,6 +572,7 @@ jobs:
551572
552573 - name : Register schemas
553574 id : register
575+ shell : bash
554576 run : |
555577 echo "Registering schemas..."
556578 sleep 40 # Wait for the API to be ready
@@ -560,6 +582,7 @@ jobs:
560582 ./register_schema.sh ${{ env.CONTAINER_API_APPURL }}/schemavault/ schema_info_sh.json
561583
562584 - name : Upload sample invoice and claim data
585+ shell : bash
563586 run : |
564587 echo "Uploading sample data..."
565588 cd src/ContentProcessorAPI/samples
@@ -569,12 +592,14 @@ jobs:
569592
570593
571594 - name : Disable Auth in Web App
595+ shell : bash
572596 run : |
573597 az containerapp update --name ${{ env.CONTAINER_WEB_APPNAME }} \
574598 --resource-group ${{ env.RESOURCE_GROUP_NAME }} \
575599 --set-env-vars APP_AUTH_ENABLED=false
576600
577601 - name : Disable Auth in API App
602+ shell : bash
578603 run : |
579604 sleep 30
580605 az containerapp update --name ${{ env.CONTAINER_API_APPNAME }} \
@@ -583,12 +608,14 @@ jobs:
583608
584609 - name : Logout from Azure
585610 if : always()
611+ shell : bash
586612 run : |
587613 az logout
588614 echo "Logged out from Azure."
589615
590616 - name : Generate Deploy Job Summary
591617 if : always()
618+ shell : bash
592619 run : |
593620 echo "## 🚀 Deploy Job Summary" >> $GITHUB_STEP_SUMMARY
594621 echo "" >> $GITHUB_STEP_SUMMARY
@@ -635,6 +662,7 @@ jobs:
635662 steps :
636663 - name : Determine Test Suite Display Name
637664 id : test_suite
665+ shell : bash
638666 run : |
639667 # Determine test suite display name based on RUN_E2E_TESTS value
640668 if [ "${{ env.RUN_E2E_TESTS }}" = "GoldenPath-Testing" ]; then
@@ -651,6 +679,7 @@ jobs:
651679
652680 - name : Send Quota Failure Notification
653681 if : needs.deploy.result == 'failure' && needs.deploy.outputs.QUOTA_FAILED == 'true'
682+ shell : bash
654683 run : |
655684 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
656685 EMAIL_BODY=$(cat <<EOF
@@ -667,6 +696,7 @@ jobs:
667696
668697 - name : Send Deployment Failure Notification
669698 if : needs.deploy.result == 'failure' && needs.deploy.outputs.QUOTA_FAILED != 'true'
699+ shell : bash
670700 run : |
671701 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
672702 RESOURCE_GROUP="${{ needs.deploy.outputs.RESOURCE_GROUP_NAME }}"
@@ -685,6 +715,7 @@ jobs:
685715
686716 - name : Send Success Notification
687717 if : needs.deploy.result == 'success' && (needs.e2e-test.result == 'skipped' || needs.e2e-test.outputs.TEST_SUCCESS == 'true')
718+ shell : bash
688719 run : |
689720 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
690721 WEBAPP_URL="${{ needs.deploy.outputs.CONTAINER_WEB_APPURL || github.event.inputs.existing_webapp_url }}"
@@ -717,6 +748,7 @@ jobs:
717748
718749 - name : Send Test Failure Notification
719750 if : needs.deploy.result == 'success' && needs.e2e-test.result != 'skipped' && needs.e2e-test.outputs.TEST_SUCCESS != 'true'
751+ shell : bash
720752 run : |
721753 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
722754 TEST_REPORT_URL="${{ needs.e2e-test.outputs.TEST_REPORT_URL }}"
@@ -739,6 +771,7 @@ jobs:
739771 - name : Send Existing URL Success Notification
740772 # Scenario: Deployment skipped (existing URL provided) AND e2e tests passed
741773 if : needs.deploy.result == 'skipped' && github.event.inputs.existing_webapp_url != '' && needs.e2e-test.result == 'success' && (needs.e2e-test.outputs.TEST_SUCCESS == 'true' || needs.e2e-test.outputs.TEST_SUCCESS == '')
774+ shell : bash
742775 run : |
743776 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
744777 EXISTING_URL="${{ github.event.inputs.existing_webapp_url }}"
@@ -760,6 +793,7 @@ jobs:
760793 - name : Send Existing URL Test Failure Notification
761794 # Scenario: Deployment skipped (existing URL provided) AND e2e tests failed
762795 if : needs.deploy.result == 'skipped' && github.event.inputs.existing_webapp_url != '' && needs.e2e-test.result == 'failure'
796+ shell : bash
763797 run : |
764798 RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
765799 EXISTING_URL="${{ github.event.inputs.existing_webapp_url }}"
@@ -793,26 +827,31 @@ jobs:
793827 uses : actions/checkout@v4
794828
795829 - name : Setup Azure Developer CLI
830+ shell : bash
796831 run : |
797832 curl -fsSL https://aka.ms/install-azd.sh | sudo bash
798833 azd version
799834
800835 - name : Login to Azure
836+ shell : bash
801837 run : |
802838 azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --client-secret ${{ secrets.AZURE_CLIENT_SECRET }} --tenant-id ${{ secrets.AZURE_TENANT_ID }}
803839 azd config set defaults.subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
804840
805841 - name : Setup Azure CLI for Docker cleanup
842+ shell : bash
806843 run : |
807844 curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
808845 az --version
809846
810847 - name : Login to Azure CLI for Docker cleanup
848+ shell : bash
811849 run : |
812850 az login --service-principal -u ${{ secrets.AZURE_CLIENT_ID }} -p ${{ secrets.AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AZURE_TENANT_ID }}
813851
814852 - name : Delete Docker Images from ACR
815853 if : github.event.inputs.existing_webapp_url == ''
854+ shell : bash
816855 run : |
817856 set -e
818857 echo "🗑️ Cleaning up Docker images from Azure Container Registry..."
@@ -840,6 +879,7 @@ jobs:
840879 fi
841880
842881 - name : Select Environment and Delete deployment using azd
882+ shell : bash
843883 run : |
844884 set -e
845885 # Try to select the environment if it exists, otherwise create a minimal environment for cleanup
@@ -862,13 +902,15 @@ jobs:
862902
863903 - name : Logout from Azure
864904 if : always()
905+ shell : bash
865906 run : |
866907 azd auth logout
867908 az logout || echo "Warning: Failed to logout from Azure CLI"
868909 echo "Logged out from Azure."
869910
870911 - name : Generate Cleanup Job Summary
871912 if : always()
913+ shell : bash
872914 run : |
873915 echo "## 🧹 Cleanup Job Summary" >> $GITHUB_STEP_SUMMARY
874916 echo "" >> $GITHUB_STEP_SUMMARY
0 commit comments