Azure DevOps管道条件脚本参数

2nbm6dog  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(230)

是否可以根据管道参数的值,有条件地向管道任务内的脚本添加参数?
示例:

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,因为在这种情况下不可能使用编译时管道表达式?

e4yzc0pl

e4yzc0pl1#

管道任务上输入参数的值字符串中设置条件不正确。
要有条件地设置流水线任务上输入参数的值,可以按如下操作。

. . .

  - 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

有关详细信息,请参考以下文档:

*表达式
*PowerShell v2任务

相关问题