繁体   English   中英

Azure DevOps 管道模板 - 如何连接参数

[英]Azure DevOps pipeline template - how to concatenate a parameter

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

parameters:
  sourcePath: ''

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

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

  • '$(sourcePath)/NextFolder'
    • 看上面
  • '$(variables.sourcePath)/NextFolder'
    • 我知道 sourcePath 不是变量,但尝试基于在任务条件中使用参数的事实,它显然仅在通过变量引用时才有效
  • '${{ parameters.sourcePath }}/NextFolder'

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

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

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

提前谢谢。

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

Main.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}}   

温度yaml

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 作为测试路径。 您也可以使用变量。 附上我的构建结果: 在此处输入图像描述 在此处输入图像描述

谢谢,于君。 与此同时,它确实发挥了作用。 显然,肯定有一些错字确实阻止了脚本正确执行,因为 se 解决方案看起来像上面提到的选项之一。

parameters:
  sourcePath: ''

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM