我需要创建几个构建定义,它们将执行完全相同的步骤。基本上,什么变化只是触发器和一些参数。因此,我将它们全部基于一个模板来完成所有繁重的工作。很好。
但是,由于一些原因(出于美观和实践),我需要自定义$(Build.BuildNumber)
的值。根据{{3}},我要做的就是在YAML定义中设置name
属性。
我所有的定义都应使用相同的名称格式,因此我想直接在模板中进行定义。但是在模板中设置顶级name
属性会导致错误消息:
/templates/default-build.yml(第5行,第1行):意外值“名称”
在各个定义中设置属性可以按预期工作,但不能“缩放”作为解决方案。
各个定义如下:
trigger:
- master
extends:
template: ../templates/default-build.yml
parameters:
solution: '**/ASolution.sln'
模板如下:
parameters:
- name: solution
type: string
default: ''
name: $(Build.DefinitionName)_$(Date:yyyyMMdd)$(Rev:.r) # Trying to set Build.BuildNumber
variables:
solution: ${{ parameters.solution }}
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
stages:
- stage: build_solution
jobs:
- job:
steps:
- task: VSBuild@1
displayName: 'Build solution $(solution)'
inputs:
solution: $(solution)
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
ArtifactName: '$(Build.BuildNumber)'
我错过了什么吗?还是只是(当前)不支持在模板中设置此特定属性?
答案 0 :(得分:2)
我认为不支持为此使用模板,因为name
是顶级参数,模板中的所有内容都不是顶级东西。