Skip to content

Commit 1fcaabb

Browse files
committed
feat: Enhance CI/CD pipeline with deployment output handling and Bicep module outputs
1 parent 823789e commit 1fcaabb

2 files changed

Lines changed: 26 additions & 6 deletions

File tree

.github/workflows/cicd.yml

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ jobs:
8989
Write-Host "Deployment Name: $deploymentName" -ForegroundColor Green
9090
9191
# Deploy using inline parameters instead of parameters file
92-
az deployment sub create `
92+
$deployment = az deployment sub create `
9393
--name $deploymentName `
9494
--location $location `
9595
--template-file ./blueprints/gh-aspnet-webapp/bicep/main.bicep `
@@ -99,7 +99,8 @@ jobs:
9999
--parameters webAppName=$webAppName `
100100
--parameters location=$location `
101101
--parameters containerImage=$containerImage `
102-
--parameters resourceGroupName=$resourceGroupName
102+
--parameters resourceGroupName=$resourceGroupName `
103+
--query "properties.outputs" -o json
103104
104105
if ($LASTEXITCODE -ne 0) {
105106
Write-Error "Deployment failed with exit code: $LASTEXITCODE"
@@ -108,10 +109,23 @@ jobs:
108109
109110
Write-Host "Deployment completed successfully!" -ForegroundColor Green
110111
111-
# Set outputs for subsequent jobs
112-
echo "acr_name=$acrName" >> $env:GITHUB_OUTPUT
113-
echo "webapp_name=$webAppName" >> $env:GITHUB_OUTPUT
114-
echo "webapp_url=https://$webAppName.azurewebsites.net" >> $env:GITHUB_OUTPUT
112+
# Parse deployment outputs to get actual resource names (with unique suffix)
113+
$outputs = $deployment | ConvertFrom-Json
114+
$actualWebAppName = $outputs.webAppName.value
115+
$actualWebAppUrl = $outputs.webAppUrl.value
116+
$actualAcrLoginServer = $outputs.acrLoginServer.value
117+
# Extract ACR name from login server (e.g., "myacr123abc.azurecr.io" -> "myacr123abc")
118+
$actualAcrName = $actualAcrLoginServer -replace '\.azurecr\.io$', ''
119+
120+
Write-Host "=== Deployed Resource Names ===" -ForegroundColor Cyan
121+
Write-Host "Actual Web App Name: $actualWebAppName" -ForegroundColor Green
122+
Write-Host "Actual Web App URL: $actualWebAppUrl" -ForegroundColor Green
123+
Write-Host "Actual ACR Name: $actualAcrName" -ForegroundColor Green
124+
125+
# Set outputs for subsequent jobs using actual deployed names
126+
echo "acr_name=$actualAcrName" >> $env:GITHUB_OUTPUT
127+
echo "webapp_name=$actualWebAppName" >> $env:GITHUB_OUTPUT
128+
echo "webapp_url=$actualWebAppUrl" >> $env:GITHUB_OUTPUT
115129
echo "resource_group=$resourceGroupName" >> $env:GITHUB_OUTPUT
116130
117131
- name: Configure ACR Managed Identity

blueprints/gh-aspnet-webapp/bicep/main.bicep

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,9 @@ module resourcesInRG './resources.bicep' = {
4545
containerImage: containerImage
4646
}
4747
}
48+
49+
// Expose outputs from the module for use in CI/CD pipelines
50+
output webAppName string = resourcesInRG.outputs.webAppName
51+
output webAppUrl string = resourcesInRG.outputs.webAppUrl
52+
output acrLoginServer string = resourcesInRG.outputs.acrLoginServer
53+
output webAppPrincipalId string = resourcesInRG.outputs.webAppPrincipalId

0 commit comments

Comments
 (0)