如何解决Azure DevOps 管道模板 - 如何连接参数
整个下午我都在想办法在 ADO 模板中连接参数。该参数是源路径,需要在模板中添加下一个文件夹级别。我想通过“简单”的连接来实现这一点。 简化模板采用参数并使用它来形成 PowerShell 脚本的输入路径,如下所示:
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'
还有其他一些变化,但都无济于事。 我还尝试在模板中引入 variables 部分,但这是不可能的。
我在互联网上搜索了示例/文档,但没有直接答案和其他问题似乎暗示了一些解决方案,但没有奏效。
如果有人能帮助我,我一定会很高兴。
提前谢谢。
解决方法
我们可以在我们的临时 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}}
temp.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''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。