Azure管道和Nuget程序包-将程序包版本设置为标记版本

时间:2020-09-03 15:12:00

标签: azure-devops continuous-integration azure-pipelines nuget-package

当我将标签推送到仓库时,我设法触发了管道。标签始终为“ v(主要)。(次要)。(发布)(-alpha)”格式。

如何从标记和设置中获取该信息作为软件包版本?

编辑1:
命令git tag -a 1.0.1将创建将触发管道的标签,并且我希望块标签的版本像标签一样为“ 1.0.1”

3 个答案:

答案 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)

在管道内,您有一个称为标记格式的选项,您可以在其中查看软件包的版本。

请查看以下屏幕截图:

Pipelines Tag Format

Artifact