Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions Infrastructure/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ param websitePassword string
@secure()
param sessionSecret string

@description('Custom name for the App Service. If not provided, defaults to wa-{solutionId}')
param appServiceName string = ''
@description('Resource naming template with {resourcetype} placeholder. Example: "d365ce-dev-erp-{resourcetype}" creates "d365ce-dev-erp-wa" for web app and "d365ce-dev-erp-asp" for app service plan. If not provided, defaults to "{resourcetype}-{solutionId}".')
param resourceNameTemplate string = ''

param adoOrganizationUrl string = ''
param adoProjectName string = ''
Expand All @@ -31,11 +31,12 @@ param entraIdAllowedGroups string = ''
param disablePasswordAuth bool = false

var location = resourceGroup().location
var resolvedAppServiceName = empty(appServiceName) ? 'wa-${solutionId}' : appServiceName
var resolvedAppServicePlanName = empty(resourceNameTemplate) ? 'asp-${solutionId}' : replace(resourceNameTemplate, '{resourcetype}', 'asp')
var resolvedWebAppName = empty(resourceNameTemplate) ? 'wa-${solutionId}' : replace(resourceNameTemplate, '{resourcetype}', 'wa')

@description('Create an App Service Plan')
resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
name: 'asp-${solutionId}'
name: resolvedAppServicePlanName
location: location
sku: {
name: 'F1'
Expand All @@ -48,7 +49,7 @@ resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {

@description('Create a Web App')
resource webApp 'Microsoft.Web/sites@2021-02-01' = {
name: resolvedAppServiceName
name: resolvedWebAppName
location: location
identity: {
type: 'SystemAssigned'
Expand All @@ -74,7 +75,7 @@ resource webApp 'Microsoft.Web/sites@2021-02-01' = {
}
{
name: 'NEXTAUTH_URL'
value: 'https://${resolvedAppServiceName}.azurewebsites.net'
value: 'https://${resolvedWebAppName}.azurewebsites.net'
}
{
name: 'WEBSITE_NODE_DEFAULT_VERSION'
Expand Down
16 changes: 13 additions & 3 deletions Setup/azure-pipelines-deploy-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ parameters:
- name: websiteName
type: string
default: ''
- name: appServiceName
- name: resourceNameTemplate
type: string
default: ''
- name: adoOrganizationUrl
Expand Down Expand Up @@ -64,15 +64,25 @@ steps:
inlineScript: |
# Create resource group
az group create --name ${{ parameters.azureResourceGroupName }} --location ${{ parameters.azureLocation }}


# Debug: Show resource naming configuration
$resourceNameTemplate = "${{ parameters.resourceNameTemplate }}"
if ($resourceNameTemplate) {
Write-Host "Using resource name template: $resourceNameTemplate"
Write-Host " App Service Plan: $($resourceNameTemplate -replace '\{resourcetype\}', 'asp')"
Write-Host " Web App: $($resourceNameTemplate -replace '\{resourcetype\}', 'wa')"
} else {
Write-Host "Using default naming: asp-${{ parameters.websiteName }}, wa-${{ parameters.websiteName }}"
}

# Deploy bicep template
$jsonResult = az deployment group create `
--resource-group ${{ parameters.azureResourceGroupName }} `
--template-file ${{ parameters.bicepTemplateFile }} `
--parameters websitePassword="${{ parameters.websitePassword }}" `
--parameters sessionSecret="${{ parameters.websiteSessionSecret }}" `
--parameters solutionId="${{ parameters.websiteName }}" `
--parameters appServiceName="${{ parameters.appServiceName }}" `
--parameters resourceNameTemplate="${{ parameters.resourceNameTemplate }}" `
--parameters adoOrganizationUrl="${{ parameters.adoOrganizationUrl }}" `
--parameters adoProjectName="${{ parameters.adoProjectName }}" `
--parameters adoRepositoryName="${{ parameters.adoRepositoryName }}" `
Expand Down
4 changes: 2 additions & 2 deletions Setup/azure-pipelines-external.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
# - EntraIdAllowedGroups (comma-separated list of Entra ID group object IDs)
#
# Optional variables (for custom naming):
# - AppServiceName (custom App Service name, defaults to wa-{WebsiteName} if not provided)
# - AzureServiceNameTemplate (naming template with {resourcetype} placeholder, e.g., "d365ce-dev-erp-{resourcetype}")

trigger: none
pr: none
Expand Down Expand Up @@ -100,7 +100,7 @@ stages:
websitePassword: $(WebsitePassword)
websiteSessionSecret: $(WebsiteSessionSecret)
websiteName: $(WebsiteName)
appServiceName: ${{ coalesce(variables.AppServiceName, '') }}
resourceNameTemplate: '$(AzureServiceNameTemplate)'
adoOrganizationUrl: $(System.CollectionUri)
adoProjectName: $(System.TeamProject)
adoRepositoryName: ${{ coalesce(variables.AdoRepositoryName, '') }}
Expand Down
Loading