testing automation flow #103
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Azure Resources-Updated | |
on: | |
push: | |
branches: | |
- PSL-Automation-Flow-Draft | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v3 | |
- name: Setup Azure CLI | |
run: | | |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash | |
az --version # Verify installation | |
- name: Login to Azure | |
run: | | |
az login --service-principal -u ${{ secrets.AUTO_AZURE_CLIENT_ID }} -p ${{ secrets.AUTO_AZURE_CLIENT_SECRET }} --tenant ${{ secrets.AUTO_AZURE_TENANT_ID }} | |
az account set --subscription ${{ secrets.AUTO_AZURE_SUBSCRIPTION_ID }} | |
- name: Install Bicep CLI | |
run: az bicep install | |
- name: Get Access Token | |
id: get_token | |
run: | | |
response=$(curl -X POST \ | |
https://login.microsoftonline.com/${{ secrets.AUTO_AZURE_TENANT_ID }}/oauth2/v2.0/token \ | |
-d "grant_type=client_credentials" \ | |
-d "client_id=${{ secrets.AUTO_AZURE_CLIENT_ID }}" \ | |
-d "client_secret=${{ secrets.AUTO_AZURE_CLIENT_SECRET }}" \ | |
-d "scope=https://graph.microsoft.com/.default") | |
echo "Response: $response" | |
echo "ACCESS_TOKEN=$(echo $response | jq -r .access_token)" >> $GITHUB_ENV | |
- name: Debug Access Token | |
run: echo "ACCESS_TOKEN=${{ env.ACCESS_TOKEN }}" | |
- name: Deploy Bicep Template | |
id: deploy | |
run: | | |
set -e | |
# Execute the deployment and capture both output and errors | |
output=$(az deployment sub create \ | |
--name autoDemo \ | |
--location eastus \ | |
--template-file infra/main.bicep \ | |
--parameters environmentName=pslautomation2 location=eastus2 \ | |
# --query "{status:properties.provisioningState, error:properties.error.message}" \ | |
2>&1) | |
# Capture the exit status | |
exit_code=$? | |
# Print the raw output | |
echo "$output" | |
# Check if the command was successful | |
if [ $exit_code -ne 0 ]; then | |
# Extract error details from output | |
error_message=$(echo "$output" | grep -oP '(?<=ERROR: ).*' || echo "$output") | |
echo "Deployment failed with the following error:" | |
echo "$error_message" | |
exit 1 | |
else | |
echo "Deployment succeeded." | |
fi | |
- name: Send Notification on Failure | |
if: failure() | |
run: | | |
curl -X POST https://graph.microsoft.com/v1.0/users/prashant_malusare@persistent.com/sendMail \ | |
-H "Authorization: Bearer ${{ env.ACCESS_TOKEN }}" \ | |
-H "Content-Type: application/json" \ | |
-d '{ | |
"message": { | |
"subject": "Deployment Failure!!", | |
"body": { | |
"contentType": "Text", | |
"content": "The deployment failed(cwyd)." | |
}, | |
"toRecipients": [ | |
{ | |
"emailAddress": { | |
"address": "v-pmalusare@microsoft.com" | |
} | |
} | |
] | |
} | |
}' |