I want to use variable groups that are referenced in my template code. It wont allow me to reference groups in the template, or in the stages
Here is my pipeline code
trigger:
batch: true
branches:
include:
- main
pool:
vmImage: ubuntu-latest
stages:
# Lint the Bicep file.
- stage: Lint
jobs:
- template: pipeline-templates/lint.yml
parameters:
serviceConnectionName: AzureBicep
# Deploy to the dev environment.
- template: pipeline-templates/deploy.yml
parameters:
environmentType: Dev
environmentShortName: dev
resourceGroupName: rg-bomsup-dev-westeur
serviceConnectionName: bom-supplier-deployment-CustomTools-Dev
# Deploy to the production environment.
- template: pipeline-templates/deploy.yml
parameters:
environmentType: Production
environmentShortName: prod
resourceGroupName: rg-bomsup-prod-westeur
serviceConnectionName: bom-supplier-deployment-CustomTools-Prod
And here is the contents of deploy.yml (where I need to reference differnt variable groups for each environment)
parameters:
- name: environmentType
type: string
- name: environmentShortName
type: string
- name: resourceGroupName
type: string
- name: serviceConnectionName
type: string
- name: deploymentDefaultLocation
type: string
default: westeurope
stages:
- ${{ if ne(parameters.environmentType, 'Production') }}:
- stage: Validate_${{parameters.environmentType}}
displayName: Validate (${{parameters.environmentType}} Environment)
jobs:
- job: ValidateBicepCode
displayName: Validate Bicep code
steps:
- task: AzureResourceManagerTemplateDeployment@3
name: RunPreflightValidation
displayName: Run preflight validation
inputs:
connectedServiceName: ${{parameters.serviceConnectionName}}
location: ${{parameters.deploymentDefaultLocation}}
deploymentMode: Validation
resourceGroupName: ${{parameters.resourceGroupName}}
csmFile: deploy/main.bicep
overrideParameters: >
-environmentType ${{parameters.environmentType}} -environmentShortName ${{parameters.environmentShortName}}
- ${{ if eq(parameters.environmentType, 'Production') }}:
- stage: Preview_${{parameters.environmentType}}
displayName: Preview (${{parameters.environmentType}} Environment)
jobs:
- job: PreviewAzureChanges
displayName: Preview Azure changes
steps:
- task: AzureCLI@2
name: RunWhatIf
displayName: Run what-if
inputs:
azureSubscription: ${{parameters.serviceConnectionName}}
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az deployment group what-if \
--resource-group ${{parameters.resourceGroupName}} \
--template-file deploy/main.bicep \
--parameters environmentType=${{parameters.environmentType}} environmentShortName=${{parameters.environmentShortName}}
- stage: Deploy_${{parameters.environmentType}}
displayName: Deploy (${{parameters.environmentType}} Environment)
jobs:
- deployment: DeployResources
displayName: Deploy Resources
environment: ${{parameters.environmentType}}
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: AzureResourceManagerTemplateDeployment@3
name: DeployBicepFile
displayName: Deploy Bicep file
inputs:
connectedServiceName: ${{parameters.serviceConnectionName}}
deploymentName: $(Build.BuildNumber)
location: ${{parameters.deploymentDefaultLocation}}
resourceGroupName: ${{parameters.resourceGroupName}}
csmFile: deploy/main.bicep
overrideParameters: >
-environmentType ${{parameters.environmentType}} -environmentShortName ${{parameters.environmentShortName}}
deploymentOutputs: deploymentOutputs
- bash: |
echo "##vso[task.setvariable variable=appServiceAppHostName;isOutput=true]$(echo $DEPLOYMENT_OUTPUTS | jq -r '.appServiceAppHostName.value')"
name: SaveDeploymentOutputs
displayName: Save deployment outputs into variables
env:
DEPLOYMENT_OUTPUTS: $(deploymentOutputs)
How do I achieve this?