Devops YAML - установить имя сборки, используя выражение - PullRequest
0 голосов
/ 17 января 2020

В сборке yaml можно установить имя сборки, используя выражение; было бы полезно, если бы я мог сопоставить конвейер выпуска с фактическим идентификатором сборки.

Пример:

trigger:  
- master

variables:  
    major: 2  
    minor: 3  
    offset: 2000  
    bid: $[$build.BuildID -as [int] + $offset]

name: "$(major).$(minor).$(bid)"

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Вы можете использовать команду UpdateBuildNumber , чтобы динамически установить имя как часть bash или сценария PowerShell.

Для получения дополнительной информации вы можете увидеть это сообщение в блоге , но суть его примерно такая:

name: 'Set dynamically below in a task'

variables:  
    major: 2  
    minor: 3  
    offset: 2000

steps:
- task: PowerShell@2
  displayName: Set the name of the build (i.e. the Build.BuildNumber)
  inputs:
    targetType: 'inline'
    script: |
      [int] $buildIdWithOffset = ([int] $(Build.BuildId)) + ([int] $(offset))
      [string] $buildName = "$(major).$(minor).$buildIdWithOffset"
      Write-Host "Setting the name of the build to '$buildName'."
      Write-Host "##vso[build.updatebuildnumber]$buildName"
0 голосов
/ 18 января 2020

Пример не работает при синтаксической ошибке.

Вы можете проверить, что MSDN выполняет c Выражения , и нет никаких математических операций, таких как суммирование.

Лучшим обходным решением будет выход из смещения:

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  major: 2  
  minor: 3  
  #offset: 2000  

name: $(major).$(minor).$(build.BuildID)

Это вернет вам имя, например, 2.3.101.

...