Azure DevOps参数化构建

3
在azure-pipelines.yml中,是否可以定义运行时参数的多个值,以便在运行构建时输入这些值?
parameters:
  - name: image
    displayName: Pool Image
    type: string
    default: ubuntu-latest
    values:
    - windows-latest
    - vs2017-win2016
    - ubuntu-latest

在Azure DevOps中点击“Run”后,会出现一个下拉菜单,您需要选择所需的选项。
根据您的选择,构建将只运行特定的步骤或任务。

嗨,Azure DevOps管道中尚不支持下拉参数。您尝试过以下解决方法吗? - Levi Lu-MSFT
2个回答

6

我不确定何时添加的,但现在可以使用下拉参数:

parameters:
  - name: env
    displayName: Environment
    type: string
    values:
      - dev
      - prod
      - test
      - train
    default: train

这将为我提供下拉菜单,其中包括预设值为traindevprod等选项。

此外,如果有4个或更多选项,则会显示下拉菜单;如果有3个或更少选项,则会显示单选按钮。例如:

  - name: department
    displayName: Business Department
    type: string
    values:
      - AI
      - BI
      - Marketing
    default: AI

将创建一个默认选中 AI 的单选按钮。请注意,第一段和第二段YAML代码完全相同,只有第一段有4个值,而第二段只有3个值。


2
“Dropdown parameters”目前在Azure DevOps管道上还不受支持。
有一个解决方法,您可以创建一个包含所有可能值的变量,并启用“可在队列时间设置”。具体步骤如下:
编辑您的YAML管道,在右上角点击“三个点”,选择“触发器”。

enter image description here

前往“变量”选项卡,创建一个变量并勾选“可在队列时间设置”。

enter image description here

然后当您排队管道时,您将被允许设置此变量的值。

enter image description here

在完成上述步骤之后,您还需要为任务添加条件。例如,在下面的示例中,只有当环境变量等于“prod”且前面的步骤全部成功时,脚本任务才能运行。
steps:
  - script: echo "run this step when Environment is prod"
    condition: and(succeeded(), eq(variables['Environment'], 'prod'))

请查看此处有关条件表达式的更多信息。
您还可以提交功能请求(单击“建议功能”并选择Azure DevOps)给微软开发团队,希望他们将来会考虑实现此功能。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接