@@ -823,29 +823,27 @@ jobs:
823823 run : |
824824 azd auth login --client-id ${{ secrets.AZURE_CLIENT_ID }} --client-secret ${{ secrets.AZURE_CLIENT_SECRET }} --tenant-id ${{ secrets.AZURE_TENANT_ID }}
825825 azd config set defaults.subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
826- - name : Select Environment and Delete deployment using azd
826+
827+ - name : Delete Resource Group Directly (Optimized Cleanup)
827828 continue-on-error : true
828- timeout-minutes : 2
829829 shell : bash
830+ id : delete_rg
830831 run : |
831832 set -e
832- # Try to select the environment if it exists, otherwise create a minimal environment for cleanup
833- azd env list
834- if azd env list | grep -q "${{ env.ENV_NAME }}"; then
835- echo "Environment ${{ env.ENV_NAME }} found, selecting it..."
836- azd env select ${{ env.ENV_NAME }}
837- else
838- echo "Environment ${{ env.ENV_NAME }} not found, creating minimal environment for cleanup..."
839- azd env new ${{ env.ENV_NAME }} --no-prompt
840- azd env set AZURE_RESOURCE_GROUP "${{ env.RESOURCE_GROUP_NAME }}"
841- azd env set AZURE_SUBSCRIPTION_ID "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
842- azd env set AZURE_ENV_AI_DEPLOYMENTS_LOCATION="${{ env.AZURE_ENV_OPENAI_LOCATION }}"
843- azd env set AZURE_LOCATION="${{ env.AZURE_LOCATION }}"
844- fi
845-
846- echo "Deleting deployment..."
847- azd down --purge --force --no-prompt || echo "⚠️ Cleanup command completed with warnings or errors"
848- echo "Deployment cleanup initiated."
833+ echo "🗑️ Starting optimized resource cleanup..."
834+
835+ # Direct resource group deletion is much faster than azd down
836+ # This approach deletes all resources in parallel
837+ echo "Deleting resource group: ${{ env.RESOURCE_GROUP_NAME }}"
838+
839+ # Use --no-wait for async deletion (faster) or remove it for synchronous
840+ az group delete \
841+ --name "${{ env.RESOURCE_GROUP_NAME }}" \
842+ --yes \
843+ --no-wait
844+
845+ echo "✅ Resource group deletion initiated"
846+ echo "Note: Resources will be cleaned up in the background"
849847
850848 - name : Logout from Azure
851849 if : always()
@@ -863,12 +861,20 @@ jobs:
863861 echo "" >> $GITHUB_STEP_SUMMARY
864862 echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY
865863 echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
866- echo "| **Job Status** | ✅ Completed |" >> $GITHUB_STEP_SUMMARY
864+ echo "| **Job Status** | ${{ job.status == 'success' && '✅ Success' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
865+ echo "| **Deletion Step Status** | ${{ steps.delete_rg.outcome == 'success' && '✅ Success' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
867866 echo "| **Resource Group** | \`${{ env.RESOURCE_GROUP_NAME }}\` |" >> $GITHUB_STEP_SUMMARY
868867 echo "| **Azure Region (Infrastructure)** | \`${{ env.AZURE_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
869868 echo "| **Azure OpenAI Region** | \`${{ env.AZURE_ENV_OPENAI_LOCATION }}\` |" >> $GITHUB_STEP_SUMMARY
870869 echo "" >> $GITHUB_STEP_SUMMARY
871- echo "### 🗑️ Cleanup Details" >> $GITHUB_STEP_SUMMARY
872- echo "- Cleanup process initiated for deployment using \`azd down --purge\`" >> $GITHUB_STEP_SUMMARY
873- echo "- Resource group \`${{ env.RESOURCE_GROUP_NAME }}\` cleanup initiated" >> $GITHUB_STEP_SUMMARY
874- echo "- ℹ️ Note: Cleanup may continue in the background if it exceeds the timeout" >> $GITHUB_STEP_SUMMARY
870+ if [[ "${{ steps.delete_rg.outcome }}" == "success" ]]; then
871+ echo "### ✅ Cleanup Details" >> $GITHUB_STEP_SUMMARY
872+ echo "- Successfully initiated deletion for Resource Group \`${{ env.RESOURCE_GROUP_NAME }}\`" >> $GITHUB_STEP_SUMMARY
873+ echo "" >> $GITHUB_STEP_SUMMARY
874+ else
875+ echo "### ❌ Cleanup Failed" >> $GITHUB_STEP_SUMMARY
876+ echo "- Cleanup process encountered an error" >> $GITHUB_STEP_SUMMARY
877+ echo "- Manual cleanup may be required for:" >> $GITHUB_STEP_SUMMARY
878+ echo " - Resource Group: \`${{ env.RESOURCE_GROUP_NAME }}\`" >> $GITHUB_STEP_SUMMARY
879+ echo "- Check the cleanup-deployment job logs for detailed error information" >> $GITHUB_STEP_SUMMARY
880+ fi
0 commit comments