Azure DevOps 파이프 라인에서 타임 스탬프 변수 사용
azure devops 파이프 라인에서 빌드 변수를 사용하고 있습니다.
내가 달성하고자하는 것 : 현재 타임 스탬프로 변수를 만들고이 변수를 사용하여 빌드 이름과 아티팩트 버전을 설정합니다 (추적 가능성을 위해).
현재 구성에서는 powershell 스크립트가 성공적으로 실행되지만 npm 단계에서 foo 변수가 비어 있습니다 (아래 yml 코드 참조).
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'
내 질문 : npm 단계에서 변수 foo (powershell과 함께 도입 됨)가 비어있는 이유는 무엇입니까? 자체 도입 변수 foo로 빌드 이름을 설정하는 방법이 있습니까 (빌드 이름 및 아티팩트 버전에 동일한 타임 스탬프 사용)?
답변
1 PatrickLu-MSFT
YAML 파이프 라인의 잘못된 형식을 사용하고 있습니다. 아래 스 니펫을 사용할 수 있습니다.
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'
그런 다음이 foo 변수가 powershell 성공과 함께 도입되어야합니다. 다음 npm 작업에서 확장되는 것을 볼 수 있습니다.