Skip to content

Commit aaf49e7

Browse files
commit
1 parent 47e087c commit aaf49e7

2 files changed

Lines changed: 78 additions & 36 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: AZD Template Validation
2+
on:
3+
schedule:
4+
- cron: '30 1 * * 4' # Every Thursday at 7:00 AM IST (1:30 AM UTC)
5+
workflow_dispatch:
6+
7+
permissions:
8+
contents: read
9+
id-token: write
10+
pull-requests: write
11+
12+
jobs:
13+
template_validation:
14+
runs-on: ubuntu-latest
15+
environment: production
16+
name: azd template validation
17+
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Validate Azure Template
22+
uses: microsoft/template-validation-action@v0.4.3
23+
with:
24+
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
25+
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
26+
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}
27+
id: validation
28+
env:
29+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
30+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
31+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
32+
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
33+
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
34+
AZURE_ENV_OPENAI_LOCATION: ${{ secrets.AZURE_ENV_OPENAI_LOCATION }}
35+
AZURE_AI_MODEL_CAPACITY: 1
36+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37+
38+
- name: print result
39+
run: cat ${{ steps.validation.outputs.resultFile }}

.github/workflows/azure-dev.yml

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,55 @@
1-
name: Azure Template Validation
1+
name: Azure Dev Deploy
22
on:
33
workflow_dispatch:
4-
push:
5-
branches:
6-
- main
74

85
permissions:
96
contents: read
107
id-token: write
11-
pull-requests: write
128

139
jobs:
14-
template_validation_job:
10+
deploy:
1511
runs-on: ubuntu-latest
12+
name: azd deploy
1613
environment: production
17-
name: Template validation
18-
14+
env:
15+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
16+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
17+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
18+
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
19+
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
20+
AZURE_ENV_OPENAI_LOCATION: ${{ secrets.AZURE_ENV_OPENAI_LOCATION }}
21+
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
22+
AZURE_EXISTING_AI_PROJECT_RESOURCE_ID: ${{ secrets.AZURE_EXISTING_AI_PROJECT_RESOURCE_ID }}
23+
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
24+
1925
steps:
20-
# Step 1: Checkout the code from your repository
21-
- name: Checkout code
26+
- name: Checkout Code
2227
uses: actions/checkout@v4
2328

24-
# Step 2: Pre-authenticate Azure for azd validation
29+
- name: Install azd
30+
uses: Azure/setup-azd@v2
31+
2532
- name: Login to Azure
33+
uses: azure/login@v2
34+
with:
35+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
36+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
37+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
38+
39+
- name: Login to AZD
2640
shell: bash
2741
run: |
28-
az login --service-principal -u "${{ secrets.AZURE_CLIENT_ID }}" -p "${{ secrets.AZURE_CLIENT_SECRET }}" --tenant "${{ secrets.AZURE_TENANT_ID }}"
29-
az account set --subscription "${{ secrets.AZURE_SUBSCRIPTION_ID }}"
30-
31-
# Step 3: Validate the Azure template using microsoft/template-validation-action
32-
- name: Validate Azure Template
33-
uses: microsoft/template-validation-action@v0.4.3
34-
with:
35-
workingDirectory: .
36-
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
37-
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}
38-
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
39-
id: validation
40-
env:
41-
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
42-
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
43-
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
44-
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
45-
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}
46-
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
47-
AZURE_ENV_OPENAI_LOCATION: ${{ secrets.AZURE_ENV_OPENAI_LOCATION }}
48-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
49-
50-
# Step 4: Print the result of the validation
51-
- name: Print result
52-
run: cat ${{ steps.validation.outputs.resultFile }}
42+
azd auth login \
43+
--client-id "$AZURE_CLIENT_ID" \
44+
--federated-credential-provider "github" \
45+
--tenant-id "$AZURE_TENANT_ID"
46+
47+
- name: Provision and Deploy
48+
shell: bash
49+
run: |
50+
set -euo pipefail
51+
52+
if ! azd env select "$AZURE_ENV_NAME"; then
53+
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
54+
fi
55+
azd up --no-prompt

0 commit comments

Comments
 (0)