Skip to content

Commit eff8b3d

Browse files
Merge pull request #794 from microsoft/psl-content-gen-templatev
feat: Add weekly schedule for Azure Template validation,split azure-dev to azure-dev,azd-template for content gen
2 parents 8a74f59 + 919d16d commit eff8b3d

2 files changed

Lines changed: 99 additions & 36 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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+
jobs:
12+
template_validation:
13+
runs-on: ubuntu-latest
14+
environment: production
15+
name: azd template validation
16+
env:
17+
GH_TOKEN: ${{ github.token }}
18+
steps:
19+
- uses: actions/checkout@v4
20+
21+
- name: Set timestamp
22+
shell: bash
23+
run: echo "HHMM=$(date -u +'%H%M')" >> "$GITHUB_ENV"
24+
25+
- name: Validate Azure Template
26+
uses: microsoft/template-validation-action@v0.4.3
27+
with:
28+
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
29+
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
30+
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}
31+
id: validation
32+
env:
33+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
34+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
35+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
36+
AZURE_ENV_NAME: ${{ secrets.AZURE_ENV_NAME }}-${{ env.HHMM }}
37+
AZURE_LOCATION: ${{ secrets.AZURE_LOCATION }}
38+
AZURE_ENV_OPENAI_LOCATION: ${{ secrets.AZURE_ENV_OPENAI_LOCATION }}
39+
AZURE_AI_MODEL_CAPACITY: 1
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
42+
- name: print result
43+
run: cat ${{ steps.validation.outputs.resultFile }}

.github/workflows/azure-dev.yml

Lines changed: 56 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,72 @@
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
25-
- name: Login to Azure
29+
- name: Set timestamp and env name
2630
shell: bash
2731
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
32+
HHMM=$(date -u +'%H%M')
33+
echo "AZURE_ENV_NAME=${AZURE_ENV_NAME}-${HHMM}" >> "$GITHUB_ENV"
34+
35+
- name: Install azd
36+
uses: Azure/setup-azd@v2
37+
38+
- name: Login to Azure
39+
uses: azure/login@v2
3440
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 }}
41+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
42+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
43+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
44+
45+
- name: Login to AZD
46+
shell: bash
47+
run: |
48+
azd auth login \
49+
--client-id "$AZURE_CLIENT_ID" \
50+
--federated-credential-provider "github" \
51+
--tenant-id "$AZURE_TENANT_ID"
52+
53+
- name: Provision and Deploy
54+
shell: bash
55+
run: |
56+
if ! azd env select "$AZURE_ENV_NAME"; then
57+
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
58+
fi
59+
60+
azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
61+
62+
63+
if [[ -n "${AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID:-}" ]]; then
64+
azd env set AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID "$AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID"
65+
fi
66+
67+
if [[ -n "${AZURE_EXISTING_AI_PROJECT_RESOURCE_ID:-}" ]]; then
68+
azd env set AZURE_EXISTING_AI_PROJECT_RESOURCE_ID "$AZURE_EXISTING_AI_PROJECT_RESOURCE_ID"
69+
fi
70+
71+
azd up --no-prompt
72+

0 commit comments

Comments
 (0)