Azure Devops Pipeline:第二个参数依赖于第一个参数
Azure Devops Pipeline: Second parameter dependent on the first parameter
在 azure devops 中,用户对第一个参数的选择是否可能决定第二个参数(类型、显示名称等)?
例如:
parameters:
- name: parametr1
displayName: example1
type: string
default: first
values:
- first
- second
- third
并且如果用户在启动管道时选择“第一个”,
第二个参数输入:
- name: parametr2.1
displayName: example2
type: number
但是如果用户在启动流水线时选择了“second”,
第二个参数输入:
- name: parametr2.2
displayName: example2.2
type: boolean
感谢您的帮助:)
Azure Devops Pipeline: Second parameter dependent on the first parameter
恐怕暂时没有办法解决这个问题。
那是因为conditions目前不支持参数。我们无法向第二个参数添加条件以根据第一个参数设置值。
我们知道,Runtime parameters 用于让您更好地控制可以将哪些值传递给管道。
由于第二个参数依赖于第一个参数,不需要我们手动控制。
因此,作为这个问题的解决方法,我们可以使用 Logging Command with 条件来根据第一个参数的值设置第二个参数:
parameters:
- name: parametr1
displayName: example1
type: string
default: first
values:
- first
- second
- third
trigger: none
jobs:
- job: build
displayName: build
pool:
name: MyPrivateAgent
steps:
- task: InlinePowershell@1
displayName: 'SetVariableV1'
inputs:
Script: 'Write-Host "##vso[task.setvariable variable=parametr2.1;]123456"'
condition: and(succeeded(), eq('${{ parameters.parametr1 }}', 'first'))
- task: InlinePowershell@1
displayName: 'SetVariableV2'
inputs:
Script: 'Write-Host "##vso[task.setvariable variable=parametr2.2;]true"'
condition: and(succeeded(), eq('${{ parameters.parametr1 }}', 'second'))
我自己测试了一下,没问题。
在 azure devops 中,用户对第一个参数的选择是否可能决定第二个参数(类型、显示名称等)?
例如:
parameters:
- name: parametr1
displayName: example1
type: string
default: first
values:
- first
- second
- third
并且如果用户在启动管道时选择“第一个”, 第二个参数输入:
- name: parametr2.1
displayName: example2
type: number
但是如果用户在启动流水线时选择了“second”, 第二个参数输入:
- name: parametr2.2
displayName: example2.2
type: boolean
感谢您的帮助:)
Azure Devops Pipeline: Second parameter dependent on the first parameter
恐怕暂时没有办法解决这个问题。
那是因为conditions目前不支持参数。我们无法向第二个参数添加条件以根据第一个参数设置值。
我们知道,Runtime parameters 用于让您更好地控制可以将哪些值传递给管道。
由于第二个参数依赖于第一个参数,不需要我们手动控制。
因此,作为这个问题的解决方法,我们可以使用 Logging Command with 条件来根据第一个参数的值设置第二个参数:
parameters:
- name: parametr1
displayName: example1
type: string
default: first
values:
- first
- second
- third
trigger: none
jobs:
- job: build
displayName: build
pool:
name: MyPrivateAgent
steps:
- task: InlinePowershell@1
displayName: 'SetVariableV1'
inputs:
Script: 'Write-Host "##vso[task.setvariable variable=parametr2.1;]123456"'
condition: and(succeeded(), eq('${{ parameters.parametr1 }}', 'first'))
- task: InlinePowershell@1
displayName: 'SetVariableV2'
inputs:
Script: 'Write-Host "##vso[task.setvariable variable=parametr2.2;]true"'
condition: and(succeeded(), eq('${{ parameters.parametr1 }}', 'second'))
我自己测试了一下,没问题。