0

azure-pipeline.yml设置了一个特殊的神奇变量,称为name导致设置管道名称。

我想在 PowerShell 脚本中使用此值将此值作为设置放入文本文件中。

variables:
  System.Debug: true
  versionNumber: '0.0.0' 
  namePrefix: 'yml_$(versionNumber).'
  buildConfiguration: 'Release'
  tag: '-yml-$(versionNumber)'
  publishBuildArtifactsSubfolder: 'yml\$(Build.Repository.Name)_yml_$(versionNumber).'

name: ${{ variables['namePrefix']}}$(Build.BuildId)

steps:
# Find and replace in files. PowerShell because bash isn't available.
- task: PowerShell@2
  displayName: Set version number in environment.*.ts
  inputs:
    targetType: 'inline'
    script: |
        Write-Host "Build.DefinitionName is $(Build.DefinitionName)"
        Write-Host "env-name is $($env:name)"
        Write-Host "name is $($name)"

#Get-ChildItem 'environment.*.ts' -Recurse | ForEach {
#  (Get-Content $_ | ForEach  { $_ -replace '[[name]]', '${Build.DefinitionName}' }) | Set-Content $_
#}

name是否可以在 PowerShell 脚本中获取 的值?如何?(这在任何地方都有记录吗?)

解决方法

似乎不可能得到特殊name的东西,因此设置一个具有相同值的变量。

variables:
  System.Debug: true
  versionNumber: '0.0.0' 
  namePrefix: 'yml_$(versionNumber).'
  buildConfiguration: 'Release'
  tag: '-yml-$(versionNumber)'
  publishBuildArtifactsSubfolder: 'yml\$(Build.Repository.Name)_yml_$(versionNumber).'
  name: ${{ variables['namePrefix']}}$(Build.BuildId)

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
        Write-Host "name is $($name)"
4

1 回答 1

0

是的,name它是一个预定义的变量 Build.BuildNumber,所以只需使用$(Build.BuildNumber).

于 2021-08-26T11:49:12.867 回答