首页 > 解决方案 > 如何使用 powershell 在另一个 yaml 中使用一个 yaml 的变量?

问题描述

由于我是 yaml 和 powershell 的新手,有人可以帮助我理解在另一个 Yaml 中使用一个 Yaml 变量的方式吗?

示例场景:

我在文件夹Test1下的abc.yml 中有变量$a,现在我必须在文件夹Test2下的bcd.yaml 中使用相同的 $a

如何在 powershell 中实现这一点?

标签: azurepowershellazure-devopsyamlazure-devops-pipelines

解决方案


要在 Azure DevOps 中的 yml 文件之间传递参数,您必须指定模板的路径(要将参数传递到的文件)并给参数一个值。然后在第二个文件中也声明参数。

要在第二个 yaml 中使用它的参数,您可以使用 ${{parameters.name}} 构造:

假设 $a 代表一个目录路径...

abc.yml 的示例内容:

stages:
- stage: 'Passing param example'
  jobs:
  - template: ${{variables['System.DefaultWorkingDirectory']}}/bcd.yml
    parameters:
      param1_butuseanynameyoulike: $a

bcd.yml 中的:

parameters:
  - name: 'param1_butuseanynameyoulike'
    displayName: 'Parameter passed from original yaml file'
    type: string
    default: ''

jobs:
  - job: somename

    steps:
        - task: PowerShell@2
          inputs:
            targetType: 'inline'
            script: |
              Get-ChildItem -Path ${{ parameters.param1_butuseanynameyoulike }}"


推荐阅读