Reputation: 1
I am developing a pipeline in Azure DevOps. I have a pipeline with three stages:
In the pipeline, I have a parameter which captures the commit message:
parameters: # doesnt seem to work with template use
- name: CommitMessage
displayName: Enter commit message
type: string
I have a deployment template file with parameters for stages 2-3.
parameters: # defaults for any parameters that aren't specified
- name: environment_name
displayName: Environment name/type
type: string
- name: variable_group
displayName: Variable Group
type: string
- name: solution_name
displayName: Solution Name
type: string
- name: deployment_settings_file_name
displayName: Deployment settings file name
type: string
default: deployment-settings.json
In my pipeline, it throws an error (unexpected property) where I assign the parameter values:
- template: deployment-template.yml
parameters:
environment_name: TEST
variable_group: Test_Deployment_Variables
solution_name: $(solutionName)
deployment_settings_file_name: deployment-settings.json
Can parameters not be assigned at the root of the pipeline and within the template?
For context, here are parts of the YAML files: Pipeline
trigger: none
name: $(Rev:r) # Set the build number
parameters:
- name: CommitMessage
displayName: Enter commit message
type: string
# Global variables
variables:
solutionName: ALM_Solution
userEmail: [email protected]
stages:
- stage: Build
jobs:
- job: Build
pool:
vmImage: windows-latest
steps:
- task: Task1
- task: Task2
...
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- stage: deploy_to_test
displayName: Deploy to TEST
jobs:
- template: deployment-template.yml
parameters:
environment_name: TEST
variable_group: Test_Deployment_Variables
solution_name: $(solutionName)
deployment_settings_file_name: deployment-settings.json
- stage: deploy_to_prod
displayName: Deploy to PROD
jobs:
- template: deployment-template.yml
parameters:
environment_name: PROD
variable_group: Prod_Deployment_Variables
solution_name: $(solutionName)
deployment_settings_file_name: deployment-settings.json
Deployment Template
arameters:
- name: environment_name
displayName: Environment name/type
type: string
- name: variable_group
displayName: Variable Group
type: string
- name: solution_name
displayName: Solution Name
type: string
- name: deployment_settings_file_name
displayName: Deployment settings file name
type: string
default: deployment-settings.json
job:
- deployment: deployment
environment: '${{parameters.environment_name}}'
continueOnError: false
timeoutInMinutes: 20 #
pool:
vmImage: 'windows-latest'
variables:
# Variable group
- group: '${{parameters.variable_group}}'
strategy:
runOnce:
deploy:
steps:
- download: buildPipeline
artifact: drop
- task: PowerPlatformToolInstaller@2
- task: task1
- task: task2
I have tried confirming YAML syntax via online checkers and it appears to be valid.
Upvotes: 0
Views: 254
Reputation: 5211
Made some changes to your deployment-template.yml
and now the pipeline works fine on my side.
arameters:
to parameters:
parameters:
- name: environment_name
displayName: Environment name/type
type: string
- name: variable_group
displayName: Variable Group
type: string
- name: solution_name
displayName: Solution Name
type: string
- name: deployment_settings_file_name
displayName: Deployment settings file name
type: string
default: deployment-settings.json
job:
to jobs:
The complete deployment-template.yml
file:
parameters:
- name: environment_name
displayName: Environment name/type
type: string
- name: variable_group
displayName: Variable Group
type: string
- name: solution_name
displayName: Solution Name
type: string
- name: deployment_settings_file_name
displayName: Deployment settings file name
type: string
default: deployment-settings.json
jobs:
- deployment: deployment
environment: '${{parameters.environment_name}}'
continueOnError: false
timeoutInMinutes: 20 #
pool:
vmImage: 'windows-latest'
variables:
# Variable group
- group: '${{parameters.variable_group}}'
strategy:
runOnce:
deploy:
steps:
- script: echo 'The value of solution_name' ${{parameters.solution_name}}
Upvotes: 0