【问题标题】:Access YAML variable in inline PowerShell script内联访问 YAML 变量 - powershell
【发布时间】:2021-03-16 18:57:34
【问题描述】:

如果我有 YAML 管道;

variables:
- name  : myVariable
  value : 'abcd'

如果我想运行一些内联​​ powershell - 如何在 powershell 脚本中访问该值 (abcd);

我希望这会起作用 - 但它没有;

- task: PowerShell@2
    displayName: "Do the thing"
    inputs:
      targetType: 'inline'
      script: 
        write-host $(myVariable)

【问题讨论】:

  • Afaik,PowerShell 中没有原生 YAML 解析器,但有一些外部解析器,例如:powershellgallery.com/packages/powershell-yaml
  • 嗨@James Cooke,根据你的描述,我已经测试过它并且它有效,我已经在下面分享了yaml定义和结果,你可以检查一下。如果我误解了您,请更详细地描述您的问题。完整的 Yaml 定义更好。谢谢。

标签: powershell azure-devops yaml


【解决方案1】:

不确定这是否适用于 Azure DevOps,但在 GitLab 中是:

$VAR_NAME

$env:VAR_NAME

我在现有的 yaml 中使用了这两行,它们工作正常:

- $PKG_VERSION = (Get-ChildItem -Path . -Filter *.version).basename
- Write-Host $PKG_VERSION

【讨论】:

  • 如果您不知道您的答案是否正确,请不要将其作为答案发布。
【解决方案2】:

我们可以参考这个doc 来指定管道、阶段或作业级别的变量。

YAML 构建定义:

pool:
  vmImage: 'vs2017-win2016'

variables:
- name  : myVariable
  value : 'abcd'

steps:

- task: PowerShell@2
  displayName: "Do the thing"
  inputs:
    targetType: 'inline'
    script: 
      write-host $(myVariable)

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多