Skip to content

Commit f314454

Browse files
azure template validation fix
1 parent ebf397f commit f314454

File tree

1 file changed

+59
-30
lines changed

1 file changed

+59
-30
lines changed
Lines changed: 59 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,64 @@
1-
name: Azure Template Validation
2-
on:
3-
# workflow_dispatch:
4-
push:
5-
branches:
6-
- main
7-
- vee-pipeline-fixes
1+
name: Azure Template Validation
2+
on:
3+
workflow_dispatch:
4+
push:
5+
branches:
6+
- main
7+
- vee-pipeline-fixes
88
permissions:
99
contents: read
1010
id-token: write
1111
pull-requests: write
12-
jobs:
13-
template_validation_job:
14-
runs-on: ubuntu-latest
12+
jobs:
13+
template_validation_job:
14+
runs-on: ubuntu-latest
15+
# Using an environment named 'production' may require approvals; adjust if that caused prior failures.
1516
environment: production
16-
name: Template validation
17-
steps:
18-
# Step 1: Checkout the code from your repository
19-
- name: Checkout code
20-
uses: actions/checkout@v4
21-
# Step 2: Validate the Azure template using microsoft/template-validation-action
22-
- name: Validate Azure Template
23-
uses: microsoft/template-validation-action@Latest
24-
id: validation
25-
env:
26-
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
27-
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
28-
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
29-
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
30-
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
31-
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
32-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33-
# Step 3: Print the result of the validation
34-
- name: Print result
35-
run: cat ${{ steps.validation.outputs.resultFile }}
17+
name: Template validation
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Azure Login
23+
uses: azure/login@v1
24+
with:
25+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
26+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
27+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
28+
29+
- name: Validate Azure Template
30+
id: validation
31+
uses: microsoft/template-validation-action@main
32+
env:
33+
# These env vars are optional for the action but retained in case the action consumes them.
34+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
35+
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
36+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
37+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
38+
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
39+
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
42+
- name: Print validation result
43+
if: always()
44+
run: |
45+
if [ -n "${{ steps.validation.outputs.resultFile }}" ] && [ -f "${{ steps.validation.outputs.resultFile }}" ]; then
46+
echo "--- Validation Result File ---"
47+
cat "${{ steps.validation.outputs.resultFile }}"
48+
else
49+
echo "Result file not found (output: '${{ steps.validation.outputs.resultFile }}')." >&2
50+
fi
51+
52+
- name: Fail if validation errors detected
53+
run: |
54+
file='${{ steps.validation.outputs.resultFile }}'
55+
if [ ! -f "$file" ]; then
56+
echo "No validation result file produced; failing." >&2
57+
exit 1
58+
fi
59+
# Heuristic: look for common error markers.
60+
if grep -Ei '"(status|level)" *: *"error"' "$file" || grep -Ei '\b(error|failed)\b' "$file"; then
61+
echo "Errors detected in template validation output." >&2
62+
exit 1
63+
fi
64+
echo "No blocking errors detected in validation output."

0 commit comments

Comments
 (0)