1
+ name : Azure Dev
2
+
1
3
on :
2
4
workflow_dispatch :
3
5
push :
4
6
branches :
5
7
- main
6
- - ' feature/*'
7
8
8
- # https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication
9
9
permissions :
10
10
id-token : write
11
11
contents : read
12
12
13
13
jobs :
14
- build :
14
+ build-test-deploy :
15
+
15
16
runs-on : ubuntu-latest
16
17
18
+ env :
19
+ AZURE_CLIENT_ID : ${{ vars.AZURE_CLIENT_ID }}
20
+ AZURE_TENANT_ID : ${{ vars.AZURE_TENANT_ID }}
21
+ AZURE_SUBSCRIPTION_ID : ${{ vars.AZURE_SUBSCRIPTION_ID }}
22
+ AZURE_ENV_NAME : ${{ vars.AZURE_ENV_NAME }}
23
+ AZURE_LOCATION : ${{ vars.AZURE_LOCATION }}
24
+
17
25
steps :
18
26
- name : Checkout
19
27
uses : actions/checkout@v4
20
28
21
- # - name: Login to Azure
22
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
23
- # uses: azure/login@v1
24
- # with:
25
- # tenant-id: ${{ vars.AZURE_TENANT_ID }}
26
- # subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}
27
- # client-id: ${{ vars.AZURE_CLIENT_ID }}
28
-
29
- # # - name: Install Azure Developer CLI
30
- # # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
31
-
32
-
33
- # - name: Install Azure Developer CLI (nightly build)
34
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
35
- # shell: pwsh
36
- # run: |
37
- # Invoke-RestMethod 'https://aka.ms/install-azd.ps1' -OutFile ./install-azd.ps1
38
- # ./install-azd.ps1 -Version daily
39
-
40
- # - name: Login to Azure Developer CLI
41
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
42
- # shell: pwsh
43
- # run: |
44
- # azd auth login `
45
- # --tenant-id "${{ vars.AZURE_TENANT_ID }}" `
46
- # --client-id "${{ vars.AZURE_CLIENT_ID }}" `
47
- # --federated-credential-provider "${{ vars.AZD_PIPELINE_PROVIDER }}"
48
-
49
- # - name: Setup environment
50
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
51
- # shell: pwsh
52
- # run: |
53
- # # Create config.json under .azure
54
- # New-Item -Type Directory .azure
55
- # $config = @{ version = 1; defaultEnvironment = "${{ vars.AZURE_ENV_NAME }}" }
56
- # $config | ConvertTo-Json -Depth 100 | Out-File -Path ./.azure/config.json -Force
57
-
58
- # # Create config.json under .azure/${{ vars.AZURE_ENV_NAME }}
59
- # New-Item -Type Directory .azure/${{ vars.AZURE_ENV_NAME }}
60
- # $config = @{ services = @{ app = @{ config = @{ exposedServices = @( "playground" ) } } } }
61
- # $config | ConvertTo-Json -Depth 100 | Out-File -Path ./.azure/${{ vars.AZURE_ENV_NAME }}/config.json -Force
62
-
63
- # # Create .env under .azure/${{ vars.AZURE_ENV_NAME }}
64
- # $dotenv = @()
65
- # $dotenv += "AZD_PIPELINE_PROVIDER=`"${{ vars.AZD_PIPELINE_PROVIDER }}`""
66
- # $dotenv += "AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN=`"${{ vars.AZURE_CONTAINER_APPS_ENVIRONMENT_DEFAULT_DOMAIN }}`""
67
- # $dotenv += "AZURE_CONTAINER_APPS_ENVIRONMENT_ID=`"${{ vars.AZURE_CONTAINER_APPS_ENVIRONMENT_ID }}`""
68
- # $dotenv += "AZURE_CONTAINER_REGISTRY_ENDPOINT=`"${{ vars.AZURE_CONTAINER_REGISTRY_ENDPOINT }}`""
69
- # $dotenv += "AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID=`"${{ vars.AZURE_CONTAINER_REGISTRY_MANAGED_IDENTITY_ID }}`""
70
- # $dotenv += "AZURE_ENV_NAME=`"${{ vars.AZURE_ENV_NAME }}`""
71
- # $dotenv += "AZURE_LOCATION=`"${{ vars.AZURE_LOCATION }}`""
72
- # $dotenv += "AZURE_PIPELINE_CLIENT_ID=`"${{ vars.AZURE_PIPELINE_CLIENT_ID }}`""
73
- # $dotenv += "AZURE_SUBSCRIPTION_ID=`"${{ vars.AZURE_SUBSCRIPTION_ID }}`""
74
- # $dotenv += "MANAGED_IDENTITY_CLIENT_ID=`"${{ vars.MANAGED_IDENTITY_CLIENT_ID }}`""
75
- # $dotenv += "SERVICE_BINDING_TABLE_ENDPOINT=`"${{ vars.SERVICE_BINDING_TABLE_ENDPOINT }}`""
76
- # $dotenv | Out-File -Path ./.azure/${{ vars.AZURE_ENV_NAME }}/.env -Force
77
-
78
- # - name: Update appsettings.json
79
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
80
- # shell: pwsh
81
- # run: |
82
- # $instances = @()
83
- # $aoais = az resource list -g rg-${{ vars.AZURE_ENV_NAME }} --query "[?type=='Microsoft.CognitiveServices/accounts'].name" | ConvertFrom-Json
84
- # $aoais | ForEach-Object {
85
- # $name = $_
86
- # $endpoint = az cognitiveservices account show -g rg-${{ vars.AZURE_ENV_NAME }} -n $name --query "properties.endpoint" -o tsv
87
- # $apiKey = az cognitiveservices account keys list -g rg-${{ vars.AZURE_ENV_NAME }} -n $name --query "key1" -o tsv
88
- # $deploymentName = az cognitiveservices account deployment list -g rg-${{ vars.AZURE_ENV_NAME }} -n $name --query "[].name" -o tsv
89
-
90
- # $instance = @{ Endpoint = $endpoint; ApiKey = $apiKey; DeploymentName = $deploymentName }
91
- # $instances += $instance
92
- # }
93
-
94
- # Copy-Item -Path ./src/AzureOpenAIProxy.AppHost/appsettings.Development.sample.json `
95
- # -Destination ./src/AzureOpenAIProxy.AppHost/appsettings.Development.json -Force
96
-
97
- # $appsettings = Get-Content -Path ./src/AzureOpenAIProxy.AppHost/appsettings.Development.json | ConvertFrom-Json
98
- # $appsettings.AOAI.Instances = $instances
99
- # $appsettings | ConvertTo-Json -Depth 100 | Out-File -Path ./src/AzureOpenAIProxy.AppHost/appsettings.Development.json -Force
100
-
101
29
- name : Setup .NET SDK
102
30
uses : actions/setup-dotnet@v4
103
31
with :
104
32
dotnet-version : 8.x
105
33
34
+ - name : Install local certs
35
+ shell : pwsh
36
+ run : |
37
+ dotnet dev-certs https --clean
38
+ dotnet dev-certs https --trust
39
+
106
40
- name : Install Aspire workload
107
41
shell : pwsh
108
42
run : |
@@ -123,9 +57,22 @@ jobs:
123
57
shell : bash
124
58
run : |
125
59
dotnet test
60
+
61
+ - name : Install azd
62
+
63
+
64
+ - name : Log in with Azure (Federated Credentials)
65
+ run : |
66
+ azd auth login `
67
+ --client-id "$Env:AZURE_CLIENT_ID" `
68
+ --federated-credential-provider "github" `
69
+ --tenant-id "$Env:AZURE_TENANT_ID"
70
+ shell : pwsh
71
+
72
+ - name : Provision Infrastructure
73
+ run : azd provision --no-prompt
74
+ env :
75
+ AZD_INITIAL_ENVIRONMENT_CONFIG : ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }}
126
76
127
- # - name: Deploy to Azure Container Apps
128
- # if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch'
129
- # shell: pwsh
130
- # run: |
131
- # azd deploy
77
+ - name : Deploy Application
78
+ run : azd deploy --no-prompt
0 commit comments