azure-devops - 显示用户输入的选择列表

标签 azure-devops azure-pipelines

我们使用经典管道(不是 YAML)。我们的代码存储库包含 SSIS 包的 Visual Studio 项目。目前,每个存储库仅包含一个 SSIS 包,因此当您进行构建时,将使用预定义变量从该包创建构建工件。我们的愿望是允许人们在一个存储库(基于项目)中拥有多个 SSIS 包,然后在进行管道构建时选择要构建和发布的包。

我首选的解决方案是这样的:

  1. 执行构建时,PowerShell 脚本会枚举 SSIS 包来填充变量。
  2. SSIS 包名称显示为复选框,允许用户选择要在构建中包含哪些包。
  3. 使用选定的 SSIS 包创建构建工件。

如果 DevOps Pipelines 无法实现这一点,我会选择此替代解决方案:

  1. 创建(或编辑)DevOps Pipeline 时,用户使用其存储库中的 SSIS 包名称列表填充变量。
  2. 执行构建时,SSIS 包名称将显示为复选框,允许用户选择要在构建中包含哪些包。
  3. 使用选定的 SSIS 包创建构建工件。

我想重申,我们已经有了工作管道,可以创建从 SSIS 包发布的工件。因此,我并不是从头开始,我只是尝试修改我们的流程,以从组中构建和发布选定的 SSIS 包。我花了很多时间在文档和帮助论坛中进行挖掘,但尚未找到一种方法来做到这一点。我洗耳恭听专家们关于 SO 的任何建议。

最佳答案

恐怕上述首选解决方案是不可能的。因为在执行构建过程中无法显示复选框以允许用户选择构建哪些包。

但是,在创建(或编辑)DevOps Pipeline 时填充变量是可以实现的。见下文:

1、在“变量”选项卡中创建变量(选中在队列时间可设置)

enter image description here

2、在管道中添加多个构建任务,每个包一个。使用customized condition来决定应该构建哪个包。见下文:

选择自定义条件-->并输入条件表达式and(succeeded(), eq(variables.APackageOne, true))

enter image description here

3、当使用队列管道时,他应该修改变量值来选择应该构建哪些包:

enter image description here

使用 yaml 管道和 runtime parameters对于上述情况会更好。

1, 您可以为每个包定义多个运行时参数作为标志。并使用条件来根据选择的参数使用来决定应该构建哪个包。见下文:

parameters:
- name: Package One
  type: boolean
  default: false
- name: PackageTwo
  type: boolean
  default: false
- name: PackageThree
  type: boolean
  default: false
- name: PackageFour
  type: boolean
  default: false

如果您的 yaml 管道中定义了上述参数。当用户对管道进行排队时,您可以选择包。见下文:

enter image description here

然后使用自定义条件仅构建选定的包:

- task: VSBuild@1
  name: BuildPackageOne
  inputs:
    ...
  condition: and(succeeded(), eq('${{ parameters.PackageOne }}', true))

关于azure-devops - 显示用户输入的选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65146806/

相关文章:

azure-devops - 是否可以从 Azure DevOps Wiki 中隐藏页面?

azure-devops - 在 VSTS/测试管理器中删除测试计划

azure - 如何获取 Azure DevOps 当前迭代的开始日期?

Azure DevOps 和 Azure CLI : Unable to locate executable file

azure - Azure Pipelines 的并行化

docker - 使用 Azure 管道更新 JFrog Docker 注册表中的最新 Artifactory

Azure Devops 持续部署管道 "Job is pending..."错误,没有任何日志

azure - 在 Azure 管道中使用独立安装程序时如何运行 Karate 测试?

azure - 调试ARM模板

azure-devops - Azure Pipelines 将 YAML 用于具有不同变量值但没有 YAML 重复的多个环境(阶段)