Azure DevOps发布管道-自定义变量的下拉列表

17
Azure DevOps发布管道中,是否可以为自定义变量创建下拉列表?
因此,如果我希望具有下拉值而不是单个文本值,则如下所示。 enter image description here
3个回答

24

如果您要手动触发管道,则可以在Azure DevOps管道中使用运行时参数

例如:
为了使操作系统镜像名称可从选择列表中选择,您可以使用以下代码片段。

parameters:
- name: image
  displayName: Pool Image
  type: string
  default: ubuntu-latest
  values:
  - windows-latest
  - vs2017-win2016
  - ubuntu-latest
  - ubuntu-16.04
  - macOS-latest
  - macOS-10.14

trigger: none # trigger is explicitly set to none

jobs:
- job: build
  displayName: build
  pool: 
    vmImage: ${{ parameters.image }}
  steps:
  - script: echo building $(Build.BuildNumber) with ${{ parameters.image }}

这将导致以下结果。

result

有关运行时参数的更多信息可以在此处找到。希望这可以帮助到您。

唯一的缺点是,由于我们将触发器指定为none,因此可能无法集成到自动流水线中。我还没有尝试过。如果它可以用于自动流水线,请告诉我。

注意:此处显示的示例和图像是从Azure DevOps文档中提取的。


1
OP 询问关于“Azure DevOps Release pipeline”的问题,该管道不支持 YAML。这个解决方案可以用于 CI 管道。 - Karan Kaw
ADO管道自2019年以来就支持发布管道YAML,尽管并非所有功能都支持。https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/ - james.garriss

5

更新: 至少需要4个值

当您预先定义了至少一定数量的值时,下拉菜单会自动出现运行流水线窗口中。

例如,看下面的参数定义,有9个预定义值。然而,我不知道显示下拉菜单所需的最小值是多少。

parameters:
  - name: DATABASE_TIER
    displayName: Tenant Database Tier
    type: string
    default: S0
    values:
      - S0
      - S1
      - S2
      - S3
      - S4
      - S6
      - S7
      - S9
      - S12

enter image description here


2
最少需要4个选项以下拉菜单的形式显示。 - pradeep
2
最少需要4个选项以下拉菜单的形式显示。 - undefined
@eric-van-coffee,在运行流水线之前,有没有办法动态加载DDL中的所有项目名称? - undefined
@ByteCruncher 这对我来说似乎有些困难。也许可以通过字符串替换来实现。你可以在某个地方收集这些名称,然后在代码层面打开 pipeline.yaml 文件,并将 'values:\n' 替换为 '\n - name1 - name2 ...' 等等。然后,如果 yaml 文件在语法上是正确的,就可以运行该流水线。 - undefined

3
据我所知,下拉框值目前还不支持。
发布管道中的自定义变量是一个键值对,其值应该是一个特定的值,而不是一个下拉列表。该值可以是单个文本值,可以是true/false或其他使用格式$(VarName)从变量组中的变量。但我们不能将下拉列表作为值传递给变量。

在某些情况下,这种方法是有意义的,例如您只想向客户呈现一个简单的界面,以便填写一些空白。例如,在Azure中有数百种VM大小可供用户选择,如果我们可以有一个变量,其值从集合中提取,那么在发布时将使发布更加可定制。是否有功能请求的投票场所?或者我们可以创建github问题吗? - Jeff Patton
您可以在我们的用户反馈论坛此处提交功能请求。 - LoLance
@JeffPatton 另外,根据您的评论,我们的新功能运行时参数是否可以满足您的需求?有关如何使用它的一些详细信息,请参见我的另一个问题 - LoLance
2
再次提到发布管道,MS 并没有采用 YAML 的做法,因此它们并不得到 MS 的青睐。 - Jeff Patton
大多数开发人员希望将下拉列表的选定值作为变量传递到管道中。这应该是一个简洁易用的功能。我还希望增加更多类似于Octopus Deploy的功能,例如将变量范围限定于环境中。 - Tore Aurstad

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