首页 > 解决方案 > Azure DevOps 管道模板 - 如何连接参数

问题描述

整个下午,我一直在努力思考如何在 ADO 模板中连接一个参数。该参数是一个源路径,并且在模板中需要添加下一个文件夹级别。我想通过“简单”的连接来实现这一点。简化的模板采用参数并使用它来形成 PowerShell 脚本的 inputPath,如下所示:

parameters:
  sourcePath: ''

steps:   
- task: PowerShell@2
  inputs:
    filePath: 'PSRepo/Scripts/MyPsScript.ps1'
    arguments: '-inputPath ''$(sourcePath)/NextFolder''

我尝试了各种方法来实现这种连接:

和其他一些变化,都无济于事。我还尝试在模板中引入变量部分,但这是不可能的。

我在互联网上搜索了示例/文档,但没有直接的答案和其他问题似乎暗示了一些解决方案,但没有奏效。

如果有人可以帮助我,我一定会非常高兴。

提前谢谢。

标签: templatesazure-devopsparametersstring-concatenation

解决方案


我们可以在我们的临时 yaml 文件中添加变量并将 sourcePath 传递给变量,然后我们就可以使用它了。这是我的演示脚本:

主要.yaml

resources:
  repositories:
    - repository: templates
      type: git
      name: Tech-Talk/template

trigger: none

variables:
  - name: Test
    value: TestGroup
    
pool:
  # vmImage: windows-latest
  vmImage: ubuntu-20.04

  
extends:
  template: temp.yaml@templates
  parameters:
    agent_pool_name: ''
    db_resource_path: $(System.DefaultWorkingDirectory)
    # variable_group: ${{variables.Test}}   

临时文件

parameters:
- name: db_resource_path
  default: ""   
# - name: 'variable_group'    
#   type: string    
#   default: 'default_variable_group'
- name: agent_pool_name
  default: ""
    
 
stages:
  - stage:      
    jobs:
    - job: READ
      displayName: Reading Parameters
      variables:
      - name: sourcePath
        value: ${{parameters.db_resource_path}}
#     - group: ${{parameters.variable_group}}
      steps:
      - script: |
          echo sourcePath: ${{variables.sourcePath}}
      - powershell: echo "$(sourcePath)"

在这里,我只是使用workingDirectory 作为测试路径。您也可以使用变量。附上我的构建结果: 在此处输入图像描述 在此处输入图像描述


推荐阅读