1- name : Azure Template Validation
1+ name : Azure Dev Deploy
2+
23on :
34 workflow_dispatch :
45
56permissions :
67 contents : read
78 id-token : write
8- pull-requests : write
99
1010jobs :
11- template_validation_job :
11+ deploy :
1212 runs-on : ubuntu-latest
1313 environment : production
14- name : template validation
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_LOCATION : ${{ vars.AZURE_LOCATION }}
19+ AZURE_ENV_AI_SERVICE_LOCATION : ${{ vars.AZURE_AI_DEPLOYMENT_LOCATION }}
20+ AZURE_ENV_GPT_MODEL_CAPACITY : 1
21+ AZURE_ENV_MODEL_4_1_CAPACITY : 1
22+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
23+ AZURE_DEV_COLLECT_TELEMETRY : ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
1524 steps :
16- # Step 1: Checkout the code from your repository
17- - name : Checkout code
18- uses : actions/checkout@v4
19- # Step 2: Validate the Azure template using microsoft/template-validation-action
20- - name : Validate Azure Template
21- uses : microsoft/template-validation-action@bae4895d0a8abd4f0d5aad68ae8647b3027f4c91
22- with :
23- validateAzd : true
24- useDevContainer : false
25- id : validation
26- env :
27- AZURE_CLIENT_ID : ${{ secrets.AZURE_CLIENT_ID }}
28- AZURE_CLIENT_SECRET : ${{ secrets.AZURE_CLIENT_SECRET }}
29- AZURE_TENANT_ID : ${{ secrets.AZURE_TENANT_ID }}
30- AZURE_SUBSCRIPTION_ID : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
31- AZURE_ENV_NAME : ${{ secrets.AZURE_ENV_NAME }}
32- AZURE_LOCATION : ${{ secrets.AZURE_LOCATION }}
33- AZURE_ENV_OPENAI_LOCATION : ${{ secrets.AZURE_AI_DEPLOYMENT_LOCATION }}
34- AZURE_ENV_MODEL_CAPACITY : 1
35- AZURE_ENV_MODEL_4_1_CAPACITY : 1
36- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
37- AZURE_DEV_COLLECT_TELEMETRY : ${{ vars.AZURE_DEV_COLLECT_TELEMETRY }}
38-
39- # Step 3: Print the result of the validation
40- - name : print result
41- run : cat ${{ steps.validation.outputs.resultFile }}
25+ - name : Checkout Code
26+ uses : actions/checkout@v4
27+
28+ - name : Set timestamp and env name
29+ run : |
30+ HHMM=$(date -u +'%H%M')
31+ echo "AZURE_ENV_NAME=azd-${{ vars.AZURE_ENV_NAME }}-${HHMM}" >> $GITHUB_ENV
32+
33+ - name : Install azd
34+ uses : Azure/setup-azd@v2
35+
36+ - name : Login to Azure
37+ uses : azure/login@v2
38+ with :
39+ client-id : ${{ secrets.AZURE_CLIENT_ID }}
40+ tenant-id : ${{ secrets.AZURE_TENANT_ID }}
41+ subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
42+
43+ - name : Login to AZD
44+ shell : bash
45+ run : |
46+ azd auth login \
47+ --client-id "$AZURE_CLIENT_ID" \
48+ --federated-credential-provider "github" \
49+ --tenant-id "$AZURE_TENANT_ID"
50+
51+ - name : Provision and Deploy
52+ shell : bash
53+ run : |
54+ if ! azd env select "$AZURE_ENV_NAME"; then
55+ azd env new "$AZURE_ENV_NAME" --subscription "$AZURE_SUBSCRIPTION_ID" --location "$AZURE_LOCATION" --no-prompt
56+ fi
57+ azd config set defaults.subscription "$AZURE_SUBSCRIPTION_ID"
58+ azd env set AZURE_ENV_AI_SERVICE_LOCATION="$AZURE_ENV_AI_SERVICE_LOCATION"
59+ azd up --no-prompt
0 commit comments