是否可以根据管道参数的值有条件地将参数添加到管道任务中的脚本?
示例:
parameters:
- name: paramName
displayName: DisplayName
type: boolean
default: trueasd
steps:
- task: PowerShell@2
displayName: TaskName
inputs:
filePath: $(System.DefaultWorkingDirectory)/someScript.ps1
arguments: -DefaultArg1 DefaultArg1_Value `
-DefaultArg2 DefaultArg2_Value
${{ if eq(parameters.paramName, 'false') }}:
-ConditionalParameter
ConditionalParameter
是一个[switch]
参数。在 PowerShell@2
任务中调用的脚本也供本地使用,这就是为什么 [switch]
参数对用户来说更容易,因为您不需要必须为其提供一个值,就像 [boolean]
类型一样,并且脚本有一堆这样的参数。
或者我是否必须将管道参数和 powershell 脚本参数类型都更改为 boolean
,因为在这种情况下不可能使用编译时管道表达式?
最佳答案
管道任务的输入参数值字符串中设置的条件不正确。
要有条件地设置管道任务的输入参数的值,您可以执行如下操作。
. . .
- task: PowerShell@2
displayName: 'TaskName'
inputs:
filePath: '$(System.DefaultWorkingDirectory)/someScript.ps1'
${{ if eq(parameters.paramName, 'false') }}:
arguments: >
-DefaultArg1 DefaultArg1_Value
-DefaultArg2 DefaultArg2_Value
-ConditionalParameter
${{ else }}:
arguments: >
-DefaultArg1 DefaultArg1_Value
-DefaultArg2 DefaultArg2_Value
更多详细信息,您可以引用以下文档:
关于Azure DevOps Pipeline 条件脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75020947/