2424 SELECTED_AI_REGION : ${{ steps.deploy.outputs.selected_ai_region || env.VALID_REGION }}
2525 steps :
2626 - name : Checkout Code
27- uses : actions/checkout@v4
27+ uses : actions/checkout@v3
2828
2929 - name : Setup Azure CLI
3030 run : |
@@ -38,33 +38,19 @@ jobs:
3838 - name : Run Quota Check
3939 id : quota-check
4040 run : |
41- set -e
4241 export AZURE_CLIENT_ID=${{ secrets.AZURE_CLIENT_ID }}
4342 export AZURE_TENANT_ID=${{ secrets.AZURE_TENANT_ID }}
44- export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
43+ export AZURE_CLIENT_SECRET=${{ secrets.AZURE_CLIENT_SECRET }}
4544 export AZURE_SUBSCRIPTION_ID="${{ secrets.AZURE_SUBSCRIPTION_ID }}"
4645 export GPT_MIN_CAPACITY="${{ env.GPT_MIN_CAPACITY }}"
4746 export AZURE_REGIONS="${{ vars.AZURE_REGIONS }}"
4847 chmod +x scripts/checkquota.sh
49- echo "Running quota script..."
50- # Capture stdout & stderr
51- if ! bash -c './scripts/checkquota.sh' | tee quota.out; then
52- echo "Quota script exited non-zero." >&2
53- fi
54- echo "--- Quota Script Output (truncated) ---"
55- head -100 quota.out || true
56- # Parse VALID_REGION if present
57- REGION_LINE=$(grep -E '^VALID_REGION=' quota.out || true)
58- if [ -n "$REGION_LINE" ]; then
59- echo "$REGION_LINE" >> $GITHUB_ENV
60- echo "Captured $REGION_LINE"
61- fi
62- if grep -qi 'No region with sufficient quota found' quota.out; then
63- echo "QUOTA_FAILED=true" >> $GITHUB_ENV
64- echo "Quota failure detected: no region with sufficient quota." >&2
65- fi
66- if ! grep -q '^VALID_REGION=' quota.out; then
67- echo "WARNING: VALID_REGION not found; will fallback later." >&2
48+ if ! scripts/checkquota.sh; then
49+ # If quota check fails due to insufficient quota, set the flag
50+ if grep -q "No region with sufficient quota found" scripts/checkquota.sh; then
51+ echo "QUOTA_FAILED=true" >> $GITHUB_ENV
52+ fi
53+ exit 1 # Fail the pipeline if any other failure occurs
6854 fi
6955
7056 - name : Send Notification on Quota Failure
8975 - name : Install Bicep CLI
9076 run : az bicep install
9177
92- - name : Install jq
93- run : |
94- if ! command -v jq >/dev/null 2>&1; then
95- sudo apt-get update -y
96- sudo apt-get install -y jq
97- fi
98- jq --version
78+ # reverted: jq explicit installation step removed
9979
10080 - name : Generate Resource Group Name
10181 id : generate_rg_name
@@ -168,35 +148,26 @@ jobs:
168148 capacity=${{ env.GPT_MIN_CAPACITY }} \
169149 imageVersion="${IMAGE_TAG}" \
170150 createdBy="Pipeline"
171- - name : Assign Contributor role to Service Principal (Idempotent)
151+ - name : Assign Contributor role to Service Principal
172152 if : always()
173153 run : |
174- scope=/subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }}
175- echo "Ensuring Contributor role on scope: $scope"
176- existing=$(az role assignment list --assignee ${{ secrets.AZURE_CLIENT_ID }} --scope "$scope" --query '[0].id' -o tsv || true)
177- if [ -n "$existing" ]; then
178- echo "Role assignment already exists: $existing"
179- else
180- az role assignment create --assignee ${{ secrets.AZURE_CLIENT_ID }} --role "Contributor" --scope "$scope" || echo "Non-fatal: role assignment create failed (possibly permission or propagation delay)."
181- fi
154+ echo "Assigning Contributor role to SPN for RG: ${{ env.RESOURCE_GROUP_NAME }}"
155+ az role assignment create \
156+ --assignee ${{ secrets.AZURE_CLIENT_ID }} \
157+ --role "Contributor" \
158+ --scope /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/${{ env.RESOURCE_GROUP_NAME }}
182159
183160
184161 - name : Get Deployment Output and extract Values
185162 id : get_output
186163 run : |
187164 set -e
188- echo "Fetching deployment outputs ..."
165+ echo "Fetching deployment output ..."
189166 BICEP_OUTPUT=$(az deployment group show --name ${{ env.SOLUTION_PREFIX }}-deployment --resource-group ${{ env.RESOURCE_GROUP_NAME }} --query "properties.outputs" -o json)
190- echo "Raw outputs JSON length: $(echo "$BICEP_OUTPUT" | wc -c)"
191- # Correct output key is WEB_APP_URL (verified in infra/main.bicep)
192- WEBAPP_URL=$(echo "$BICEP_OUTPUT" | jq -r '.WEB_APP_URL.value // empty')
193- if [ -z "$WEBAPP_URL" ]; then
194- echo "::error::WEB_APP_URL output missing or empty. Full outputs below:" >&2
195- echo "$BICEP_OUTPUT" >&2
196- exit 1
197- fi
167+ echo "Extracting deployment output..."
168+ WEBAPP_URL=$(echo $BICEP_OUTPUT | jq -r '.weB_APP_URL.value')
198169 echo "WEBAPP_URL=$WEBAPP_URL" >> $GITHUB_OUTPUT
199- echo "Resolved WEB_APP_URL : $WEBAPP_URL "
170+ echo "Deployment output : $BICEP_OUTPUT "
200171
201172 - name : Logout from Azure
202173 if : always()
0 commit comments