【发布时间】:2020-12-06 12:31:23
【问题描述】:
我被困在 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 设置构建名称(为构建名称和工件版本使用相同的时间戳)?
【问题讨论】:
-
我没有看到在 yaml 的
variables部分中引入了这个变量。你试过了吗? -
根据文档集变量可用于同一作业中的下游步骤:docs.microsoft.com/en-us/azure/devops/pipelines/process/… 尽管如此,我尝试像建议的那样设置变量,但它在 npm 步骤中仍然不包含任何文本
-
docs.microsoft.com/en-us/azure/devops/pipelines/process/… "要从脚本设置变量,您可以使用 task.setvariable 日志记录命令。这不会更新环境变量,但它确实使新变量可用于下游步骤同样的工作。”
标签: powershell azure-pipelines azure-devops-server