@@ -11,41 +11,85 @@ parameters:
1111 type : string
1212- name : vmImageName
1313 type : string
14- - name : functionAppNamePri
14+ - name : appSettingsJsonFileRelativePathPri
15+ displayName : ' AppSettings Json File Relative Path for Primary instance'
1516 type : string
1617
1718jobs :
1819- job : Infrastructure
1920 displayName : Infrastructure Setup
20- condition : eq(stageDependencies.Build.BuildJob .outputs['BuildJob.HAS_BACKEND_CHANGES'], 'true')
21+ condition : eq(stageDependencies.Build.Build .outputs['BuildJob.HAS_BACKEND_CHANGES'], 'true')
2122 pool :
2223 vmImage : ${{parameters.vmImageName}}
2324 steps :
2425 - task : AzureResourceManagerTemplateDeployment@3
26+ name : deployInfrastructure
27+ displayName : ' Deploy API Infrastructure'
2528 inputs :
2629 connectedServiceName : ${{parameters.ServiceConnectionName}}
27- deploymentName : $(Build.BuildNumber)
30+ deploymentName : $(Build.BuildNumber)-api
2831 location : ${{parameters.deploymentDefaultLocation}}
2932 resourceGroupName : ${{parameters.resourceGroupName}}
3033 csmFile : apps/api/iac/main.bicep
31- overrideParameters : >
32- -environment ${{parameters.environmentNameBicep}}
34+ csmParametersFile : apps/api/iac/${{parameters.environmentNameBicep}}.bicepparam
35+ deploymentOutputs : ' armOutputs'
36+ # overrideParameters: >
37+ # -environment ${{parameters.environmentNameBicep}}
38+
39+ - task : PowerShell@2
40+ name : captureOutputs
41+ displayName : ' Capture Infrastructure Outputs'
42+ inputs :
43+ targetType : ' inline'
44+ script : |
45+ Write-Host "Debug - armOutputs: $(armOutputs)"
46+ $var = ConvertFrom-Json '$(armOutputs)'
47+ $functionAppNamePri = $var.functionAppNamePri.value
48+ Write-Host "Function App Name (Primary): $functionAppNamePri"
49+ Write-Host "##vso[task.setvariable variable=functionAppNamePri;isOutput=true]$functionAppNamePri"
50+
3351 - deployment : Application_Deployment_Pri
3452 displayName : Application Deployment (Primary)
35- condition : eq(stageDependencies.Build.BuildJob.outputs['BuildJob.HAS_BACKEND_CHANGES'], 'true')
53+ condition : and(succeeded(), eq(stageDependencies.Build.Build.outputs['BuildJob.HAS_BACKEND_CHANGES'], 'true'))
54+ dependsOn : Infrastructure
3655 environment : ${{parameters.environmentNameDevOps}}
3756 pool :
3857 vmImage : ${{parameters.vmImageName}}
58+ variables :
59+ functionAppNamePri : $[ dependencies.Infrastructure.outputs['captureOutputs.functionAppNamePri'] ]
3960 strategy :
4061 runOnce :
4162 deploy :
4263 steps :
64+ - download : current
65+ displayName : ' Artifact: Download API package'
66+ artifact : api
4367 - task : AzureFunctionApp@1
44- displayName : ' Azure Functions App Deploy: ${{parameters. functionAppNamePri}} '
68+ displayName : ' Azure Functions App Deploy: $( functionAppNamePri) '
4569 inputs :
4670 azureSubscription : ${{parameters.ServiceConnectionName}}
4771 appType : ' functionAppLinux'
48- appName : ${{parameters. functionAppNamePri}}
49- package : ' $(Pipeline.Workspace)/drop/ $(Build.BuildId).zip'
72+ appName : $( functionAppNamePri)
73+ package : ' $(Pipeline.Workspace)/api/api- $(Build.BuildId).zip'
5074 runtimeStack : ' NODE|22'
51- deploymentMethod : ' runFromPackage'
75+ deploymentMethod : ' runFromPackage'
76+
77+ - job : Application_Settings_Pri
78+ displayName : Application Settings (Primary)
79+ condition : and(succeeded(), eq(stageDependencies.Build.Build.outputs['BuildJob.HAS_BACKEND_CHANGES'], 'true'))
80+ dependsOn :
81+ - Infrastructure
82+ - Application_Deployment_Pri
83+ pool :
84+ vmImage : ${{parameters.vmImageName}}
85+ variables :
86+ functionAppNamePri : $[ dependencies.Infrastructure.outputs['captureOutputs.functionAppNamePri'] ]
87+ steps :
88+ - powershell : |
89+ $output = Get-Content '$(Build.SourcesDirectory)/${{parameters.appSettingsJsonFileRelativePathPri}}'
90+ Write-Host "##vso[task.setvariable variable=appSettingsPri]$($output)"
91+ - task : AzureAppServiceSettings@1
92+ inputs :
93+ azureSubscription : ${{parameters.ServiceConnectionName}}
94+ appName : $(functionAppNamePri)
95+ appSettings : ' $(appSettingsPri)'
0 commit comments