【问题标题】:How can I prompt for variables when launching Azure DevOps pipelines?启动 Azure DevOps 管道时如何提示输入变量?
【发布时间】:2021-05-19 13:01:34
【问题描述】:
我正在尝试让 Azure DevOps 管道在手动启动管道(使用新的 YAML 语法定义)时提示输入版本号。
即使我在模板中定义变量,启动屏幕也会显示“此管道没有定义的变量”。如何定义变量以便它们显示在管道启动中?
当前 YAML 定义包含:
variables:
- name: versionName
value: ''
这些在启动管道时不会显示:
【问题讨论】:
标签:
azure-devops
azure-devops-pipelines
【解决方案1】:
虽然Shayki's answer 对定义变量是正确的,但我真正想要的是runtime parameters。
使用以下 YAML 定义:
parameters:
- name: myParameter
displayName: Description of myParameter
default: defaultMyParameter
type: string
启动管道时提示输入参数值:
必须在模板中使用${{ parameters.myParameter }}引用参数,其他变量语法不起作用。
【解决方案2】:
来自docs:
如果 variable 出现在 YAML 文件的变量块中,它的
值是固定的,不能在排队时被覆盖。最佳做法是
在 YAML 文件中定义您的变量,但有时这
没有意义。例如,您可能想要定义一个秘密
变量,并且没有在您的 YAML 中公开该变量。或者,您可以
在流水线运行过程中需要手动设置变量值。
您有两种选择来定义队列时间值。你可以定义一个
用户界面中的变量并选择让用户覆盖此选项
运行此管道时的值,或者您可以使用runtime parameters
反而。如果您的变量不是秘密,则最佳做法是使用
运行时参数。
要在排队时设置变量,请在您的
管道并选择覆盖选项。
要允许在排队时设置变量,请确保变量
也不会出现在管道或作业的 variables 块中。如果
您在 YAML 的变量块和
UI,YAML 中的值优先。