Skip to content

testing automation flow #103

testing automation flow

testing automation flow #103

Workflow file for this run

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"
}
}
]
}
}'