如何在 Azure DevOps 构建管道模板中设置构建名称 (Build.BuildNumber)?

2024-03-13

我需要创建多个构建定义,它们都将执行完全相同的步骤。基本上,改变的只是触发器和一些参数。因此,我将它们全部基于一个可以完成所有繁重工作的模板。效果很好。

但是,我需要自定义的值$(Build.BuildNumber)出于多种原因,有些是美观的,有些是实用的。根据,我所要做的就是设置nameYAML 定义中的属性。

我所有的定义都应该具有相同的名称格式,所以我想直接在模板中定义它。但设置一个顶级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)'

我错过了什么吗?或者(当前)不支持在模板中设置此特定属性?


您可以在调用以下命令的 Powershell 任务中执行此操作##vso[build.updatebuildnumber]'命令'。

该任务也可以定义为模板,如下所示:

steps:

- task: PowerShell@2
  displayName: 'Create version number'
  name: 'CreateVersionNumber'
  inputs:
    targetType: 'inline'
    script: |
        $newVersion = "MyVersion $(Build.BuildId)"

        Write-Host "New version is $($newVersion)"

        [string] $buildName = "$($newVersion)"
        Write-Host "Setting the name of the build to '$buildName'."
        Write-Host "##vso[build.updatebuildnumber]$buildName"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure DevOps 构建管道模板中设置构建名称 (Build.BuildNumber)? 的相关文章

随机推荐