Skip to content

Commit f9c59e8

Browse files
authored
Merge pull request #44 from Azure-Samples/howie/template-validation
added template validation
2 parents 380398d + 9b3aad8 commit f9c59e8

File tree

2 files changed

+130
-0
lines changed

2 files changed

+130
-0
lines changed

.github/workflows/azure-dev.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Run when commits are pushed to main
2+
on:
3+
workflow_dispatch:
4+
push:
5+
# Run when commits are pushed to mainline branch (main or master)
6+
# Set this to the mainline branch you are using
7+
branches:
8+
- main
9+
10+
# Set up permissions for deploying with secretless Azure federated credentials
11+
# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication
12+
permissions:
13+
id-token: write
14+
contents: read
15+
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
env:
21+
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
22+
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
23+
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
24+
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
25+
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
26+
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }}
27+
AZURE_AIHUB_NAME: ${{ vars.AZURE_AIHUB_NAME }}
28+
AZURE_AIPROJECT_NAME: ${{ vars.AZURE_AIPROJECT_NAME }}
29+
AZURE_AISERVICES_NAME: ${{ vars.AZURE_AISERVICES_NAME }}
30+
AZURE_SEARCH_SERVICE_NAME: ${{ vars.AZURE_SEARCH_SERVICE_NAME }}
31+
AZURE_APPLICATION_INSIGHTS_NAME: ${{ vars.AZURE_APPLICATION_INSIGHTS_NAME }}
32+
AZURE_CONTAINER_REGISTRY_NAME: ${{ vars.AZURE_CONTAINER_REGISTRY_NAME }}
33+
AZURE_KEYVAULT_NAME: ${{ vars.AZURE_KEYVAULT_NAME }}
34+
AZURE_STORAGE_ACCOUNT_NAME: ${{ vars.AZURE_STORAGE_ACCOUNT_NAME }}
35+
AZURE_LOG_ANALYTICS_WORKSPACE_NAME: ${{ vars.AZURE_LOG_ANALYTICS_WORKSPACE_NAME }}
36+
USE_CONTAINER_REGISTRY: ${{ vars.USE_CONTAINER_REGISTRY }}
37+
USE_APPLICATION_INSIGHTS: ${{ vars.USE_APPLICATION_INSIGHTS }}
38+
USE_SEARCH_SERVICE: ${{ vars.USE_SEARCH_SERVICE }}
39+
AZURE_AI_AGENT_NAME: ${{ vars.AZURE_AI_AGENT_NAME }}
40+
AZURE_AI_AGENT_ID: ${{ vars.AZURE_AI_AGENT_ID }}
41+
AZURE_AI_AGENT_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_NAME }}
42+
AZURE_AI_AGENT_DEPLOYMENT_SKU: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_SKU }}
43+
AZURE_AI_AGENT_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_CAPACITY }}
44+
AZURE_AI_AGENT_MODEL_NAME: ${{ vars.AZURE_AI_AGENT_MODEL_NAME }}
45+
AZURE_AI_AGENT_MODEL_FORMAT: ${{ vars.AZURE_AI_AGENT_MODEL_FORMAT }}
46+
AZURE_AI_AGENT_MODEL_VERSION: ${{ vars.AZURE_AI_AGENT_MODEL_VERSION }}
47+
AZURE_AI_EMBED_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_NAME }}
48+
AZURE_AI_EMBED_DEPLOYMENT_SKU: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_SKU }}
49+
AZURE_AI_EMBED_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_CAPACITY }}
50+
AZURE_AI_EMBED_MODEL_NAME: ${{ vars.AZURE_AI_EMBED_MODEL_NAME }}
51+
AZURE_AI_EMBED_MODEL_FORMAT: ${{ vars.AZURE_AI_EMBED_MODEL_FORMAT }}
52+
AZURE_AI_EMBED_MODEL_VERSION: ${{ vars.AZURE_AI_EMBED_MODEL_VERSION }}
53+
AZURE_EXISTING_AIPROJECT_CONNECTION_STRING: ${{ vars.AZURE_EXISTING_AIPROJECT_CONNECTION_STRING }}
54+
steps:
55+
- name: Checkout
56+
uses: actions/checkout@v4
57+
- name: Install azd
58+
uses: Azure/setup-azd@v2
59+
- name: Log in with Azure (Federated Credentials)
60+
run: |
61+
azd auth login `
62+
--client-id "$Env:AZURE_CLIENT_ID" `
63+
--federated-credential-provider "github" `
64+
--tenant-id "$Env:AZURE_TENANT_ID"
65+
shell: pwsh
66+
67+
68+
- name: Provision Infrastructure
69+
run: azd provision --no-prompt
70+
env:
71+
AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}
72+
73+
- name: Deploy Application
74+
run: azd deploy --no-prompt
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Template Validation
2+
on:
3+
workflow_dispatch:
4+
5+
permissions:
6+
contents: read
7+
id-token: write
8+
pull-requests: write
9+
10+
jobs:
11+
template_validation_job:
12+
runs-on: ubuntu-latest
13+
name: template validation
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: microsoft/template-validation-action@v0.3.2
18+
id: validation
19+
env:
20+
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
21+
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
22+
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
23+
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
24+
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
# Project-specific variables (matches azure-dev.yaml/azure.yaml/main.parameters.json)
27+
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }}
28+
AZURE_AIHUB_NAME: ${{ vars.AZURE_AIHUB_NAME }}
29+
AZURE_AIPROJECT_NAME: ${{ vars.AZURE_AIPROJECT_NAME }}
30+
AZURE_AISERVICES_NAME: ${{ vars.AZURE_AISERVICES_NAME }}
31+
AZURE_SEARCH_SERVICE_NAME: ${{ vars.AZURE_SEARCH_SERVICE_NAME }}
32+
AZURE_APPLICATION_INSIGHTS_NAME: ${{ vars.AZURE_APPLICATION_INSIGHTS_NAME }}
33+
AZURE_CONTAINER_REGISTRY_NAME: ${{ vars.AZURE_CONTAINER_REGISTRY_NAME }}
34+
AZURE_KEYVAULT_NAME: ${{ vars.AZURE_KEYVAULT_NAME }}
35+
AZURE_STORAGE_ACCOUNT_NAME: ${{ vars.AZURE_STORAGE_ACCOUNT_NAME }}
36+
AZURE_LOG_ANALYTICS_WORKSPACE_NAME: ${{ vars.AZURE_LOG_ANALYTICS_WORKSPACE_NAME }}
37+
USE_CONTAINER_REGISTRY: ${{ vars.USE_CONTAINER_REGISTRY }}
38+
USE_APPLICATION_INSIGHTS: ${{ vars.USE_APPLICATION_INSIGHTS }}
39+
USE_SEARCH_SERVICE: ${{ vars.USE_SEARCH_SERVICE }}
40+
AZURE_AI_AGENT_NAME: ${{ vars.AZURE_AI_AGENT_NAME }}
41+
AZURE_AI_AGENT_ID: ${{ vars.AZURE_AI_AGENT_ID }}
42+
AZURE_AI_AGENT_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_NAME }}
43+
AZURE_AI_AGENT_DEPLOYMENT_SKU: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_SKU }}
44+
AZURE_AI_AGENT_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_AI_AGENT_DEPLOYMENT_CAPACITY }}
45+
AZURE_AI_AGENT_MODEL_NAME: ${{ vars.AZURE_AI_AGENT_MODEL_NAME }}
46+
AZURE_AI_AGENT_MODEL_FORMAT: ${{ vars.AZURE_AI_AGENT_MODEL_FORMAT }}
47+
AZURE_AI_AGENT_MODEL_VERSION: ${{ vars.AZURE_AI_AGENT_MODEL_VERSION }}
48+
AZURE_AI_EMBED_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_NAME }}
49+
AZURE_AI_EMBED_DEPLOYMENT_SKU: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_SKU }}
50+
AZURE_AI_EMBED_DEPLOYMENT_CAPACITY: ${{ vars.AZURE_AI_EMBED_DEPLOYMENT_CAPACITY }}
51+
AZURE_AI_EMBED_MODEL_NAME: ${{ vars.AZURE_AI_EMBED_MODEL_NAME }}
52+
AZURE_AI_EMBED_MODEL_FORMAT: ${{ vars.AZURE_AI_EMBED_MODEL_FORMAT }}
53+
AZURE_AI_EMBED_MODEL_VERSION: ${{ vars.AZURE_AI_EMBED_MODEL_VERSION }}
54+
AZURE_EXISTING_AIPROJECT_CONNECTION_STRING: ${{ vars.AZURE_EXISTING_AIPROJECT_CONNECTION_STRING }}
55+
- name: print result
56+
run: cat ${{ steps.validation.outputs.resultFile }}

0 commit comments

Comments
 (0)