当我将标签推送到仓库时,我设法触发了管道。标签始终为“ v(主要)。(次要)。(发布)(-alpha)”格式。
如何从标记和设置中获取该信息作为软件包版本?
编辑1:
命令git tag -a 1.0.1
将创建将触发管道的标签,并且我希望块标签的版本像标签一样为“ 1.0.1”
答案 0 :(得分:1)
您可能必须进行一些解析和错误处理,以便仅在标签上运行,但是您可以从Build.SourceBranch
变量中获取和解析值,如documentation所示:
构建的触发仓库的分支已排队。一些 例子:
- Git回购分支:refs / heads / master
- Git回购请求:refs / pull / 1 / merge
- TFVC回购分支:$ / teamproject / main
- TFVC回购门控登机手续:Gated_2016-06-06_05.20.51.4369; username@live.com
- TFVC回购货架集构建:myshelveset; username@live.com
- 当管道由标签触发时:refs / tags /您的标签名称
当您以内部版本号格式使用此变量时,正向 斜杠(/)替换为下划线字符_)。
注意:在TFVC中,如果您运行的是门禁签入版本或手动运行 构建架子集,则不能在构建中使用此变量 数字格式。
答案 1 :(得分:1)
无需使用以下 YAML 进行解析和错误处理即可完成此操作:
trigger:
tags:
include:
- 0.*
- 1.*
- 2.*
- 3.*
- 4.*
- 5.*
- 6.*
- 7.*
- 8.*
- 9.*
pool: 'LocalWindows'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: NuGetCommand@2
inputs:
command: 'pack'
packagesToPack: '**/Source/*.vbproj'
versioningScheme: 'byEnvVar'
versionEnvVar: 'BUILD_SOURCEBRANCHNAME'
includeSymbols: true
特别的是,你必须有一个只监听标签的触发器,然后你才能使用 envvar BUILD_SOURCEBRANCHNAME。
您可以根据需要调整标签包含。
答案 2 :(得分:0)