1- name : Deploy to Azure
1+ name : Azure Dev Deploy
22
33on :
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
116permissions :
12- id-token : write
137 contents : read
8+ id-token : write
149
1510jobs :
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