Azure DevOps Pipeline 条件脚本参数

标签 azure powershell azure-devops yaml pipeline

是否可以根据管道参数的值有条件地将参数添加到管道任务中的脚本?

示例:

 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/

相关文章:

powershell - 是否可以使用 powershell 将客户端身份验证证书 (.pfx) 添加到数据工厂中的 Web 事件

powershell - PSCredentialUIOptions.Default 和 PSCredentialUIOptions.ValidateUserNameSyntax 有什么区别?

powershell - 在带参数的脚本中导入函数

azure - 从不同组织访问 Azure DevOps Artifact Feed

azure - 将 Application Insight 添加到现有的 Azure Service Fabric 群集

Azure - 获取负载均衡器探针的当前状态

c# - 使用 azure-sdk-for-net 将大型 blob 上传到 azure 超时

file - 遍历文件夹并检查是否存在某个文件

azure-devops - 在 Azure Devops 中按顺序运行作业

docker - 如何在Kubernetes中使用Azure Devops部署Docker容器?