如何使用 powershell 在另一个 yaml 中使用一个 yaml 的变量?

时间:2021-06-03 12:45:13

标签: azure powershell azure-devops yaml azure-devops-pipelines

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

示例场景:

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

如何在 powershell 中实现这一点?

1 个答案:

答案 0 :(得分:0)

要在 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 }}"