Skip to content

Commit 47bb4ee

Browse files
refactor: update Azure Dev workflow and add template validation workflow
1 parent 909c0da commit 47bb4ee

3 files changed

Lines changed: 72 additions & 71 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_job:
14+
runs-on: ubuntu-latest
15+
name: azd template validation
16+
environment: production
17+
steps:
18+
- uses: actions/checkout@v6
19+
20+
- uses: microsoft/template-validation-action@v0.4.3
21+
with:
22+
validateAzd: ${{ vars.TEMPLATE_VALIDATE_AZD }}
23+
validateTests: ${{ vars.TEMPLATE_VALIDATE_TESTS }}
24+
useDevContainer: ${{ vars.TEMPLATE_USE_DEV_CONTAINER }}
25+
id: validation
26+
env:
27+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
28+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
29+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
30+
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
31+
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
32+
AZURE_ENV_AI_SERVICE_LOCATION: ${{ vars.AZURE_ENV_AI_SERVICE_LOCATION || 'eastus2' }}
33+
AZURE_ENV_USE_CASE: ${{ vars.AZURE_ENV_USE_CASE || 'telecom' }}
34+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
35+
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
36+
37+
38+
- name: print result
39+
run: cat ${{ steps.validation.outputs.resultFile }}

.github/workflows/azure-dev-validation.yml

Lines changed: 0 additions & 43 deletions
This file was deleted.

.github/workflows/azure-dev.yml

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,54 @@
1-
name: Deploy to Azure
1+
name: Azure Dev Deploy
22

33
on:
44
workflow_dispatch:
5-
# push:
6-
# branches:
7-
# - main
85

9-
# Set up permissions for deploying with secretless Azure federated credentials
10-
# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication
116
permissions:
12-
id-token: write
137
contents: read
8+
id-token: write
149

1510
jobs:
16-
build:
11+
deploy:
1712
runs-on: ubuntu-latest
1813
environment: production
1914
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 }}
15+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
16+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
17+
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
2318
AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
2419
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
25-
AZURE_ENV_OPENAI_LOCATION: ${{ vars.AZURE_ENV_OPENAI_LOCATION || 'eastus2' }}
20+
AZURE_ENV_AI_SERVICE_LOCATION: ${{ vars.AZURE_LOCATION || 'eastus2' }}
2621
AZURE_ENV_USE_CASE: ${{ vars.AZURE_ENV_USE_CASE || 'telecom' }}
2722
AZURE_DEV_COLLECT_TELEMETRY: ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
2823
steps:
29-
- name: Checkout
30-
uses: actions/checkout@v6
24+
- name: Checkout Code
25+
uses: actions/checkout@v4
3126

3227
- name: Install azd
33-
uses: Azure/setup-azd@v2.0.0
28+
uses: Azure/setup-azd@v2
3429

35-
- name: Log in with Azure (Federated Credentials)
36-
run: |
37-
azd auth login `
38-
--client-id "$Env:AZURE_CLIENT_ID" `
39-
--federated-credential-provider "github" `
40-
--tenant-id "$Env:AZURE_TENANT_ID"
41-
shell: pwsh
30+
- name: Login to Azure
31+
uses: azure/login@v2
32+
with:
33+
client-id: ${{ secrets.AZURE_CLIENT_ID }}
34+
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
35+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
4236

43-
- name: Provision Infrastructure
44-
run: azd provision --no-prompt
45-
env:
46-
AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}
37+
- name: Login to AZD
38+
shell: bash
39+
run: |
40+
azd auth login \
41+
--client-id "$AZURE_CLIENT_ID" \
42+
--federated-credential-provider "github" \
43+
--tenant-id "$AZURE_TENANT_ID"
4744
48-
- name: Deploy Application
49-
run: azd deploy --no-prompt
45+
- name: Provision and Deploy
46+
shell: bash
47+
run: |
48+
if ! azd env select "$AZURE_ENV_NAME"; then
49+
azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
50+
fi
51+
azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
52+
azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_AI_SERVICE_LOCATION"
53+
azd env set AZURE_ENV_USE_CASE="$AZURE_ENV_USE_CASE"
54+
azd up --no-prompt

0 commit comments

Comments
 (0)