Azure devops ardışık düzeninde zaman damgası değişkenini kullanın

Aug 17 2020

Azure devops ardışık düzenlerinde yapı değişkenlerini kullanmakta kaldım.

Neyi başarmaya çalışıyorum: Geçerli zaman damgasıyla değişken oluşturun ve bu değişkeni yapı adını ve yapı sürümünü (izlenebilirlik için) ayarlamak için kullanın.

Mevcut konfigürasyonumda powershell betiği başarılı bir şekilde yürütülüyor, ancak foo değişkeni npm adımında boş (aşağıdaki yml koduna bakın).

variables:
  system.debug: true

name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)-$(Hours)$(Minutes)$(Seconds) [...] steps: - task: PowerShell@2 inputs: targetType: 'inline' script: 'Write-Host "Setting up the date time for build variable" $date=$(Get-Date -format yyyyMMdd-Hmmss) Write-Host "##vso[task.setvariable variable=foo]$date"'

- task: Npm@1
  inputs:
    command: 'custom'
    customCommand: '--no-git-tag-version version prerelease --preid=dev-$(foo)'
  displayName: 'npm version prerelease'

Sorularım: npm adımında foo (powershell ile tanıtılan) değişkeni neden boş? Kendi kendine tanıtılan foo değişkeni ile derleme adını belirlemenin bir yolu var mı (yapı adı ve yapı sürümü için aynı zaman damgasını kullanmak için)?

Yanıtlar

1 PatrickLu-MSFT Aug 18 2020 at 16:54

YAML ardışık düzeninizin yanlış biçimini kullanıyorsunuz. Aşağıdaki pasajı kullanabilirsiniz:

steps:
- powershell: |
   Write-Host "Setting up the date time for build variable"
   $date=$(Get-Date -format yyyyMMdd-Hmmss)
   Write-Host "##vso[task.setvariable variable=foo]$date"
  displayName: 'PowerShell Script'

Daha sonra bu foo değişkeni powershell ile başarılı bir şekilde tanıtılmalıdır. Takip npm görevinde genişlediğini göreceksiniz.