【问题标题】:Howto: Allow run time selection build artifact in Azure DevOps YAML pipelines如何:在 Azure DevOps YAML 管道中允许运行时选择构建工件
【发布时间】:2020-06-05 10:17:33
【问题描述】:

我可以使用 Conditional insertion 将另一个管道 (AppCIPipline) 发布的工件的最新版本包含到我的 YAML 管道中:

name: '$(Build.SourceBranchName)-$(date:yyyyMMdd)$(rev:.r)'
resources:
  pipelines:
    - pipeline: AppBuildToDeploy # Required when source == Specific
      source: App_Master_CI
      branch: master
      # buildToDeploy is a pipeline variable
      ${{ if ne(variables['buildToDeploy'], '') }}:
        version: $(buildToDeploy)  #let's leave it blank from the pipeline
      project: NewHorizon
      trigger: none

pool: 'Matrix' # Self hosted agent on a windows server

steps:

- download: 'AppBuildToDeploy'
  patterns: '*_BuildScripts.zip'
  displayName: 'Download Specified Artifacts'

我收到以下错误:“此上下文中不允许使用模板表达式”

有没有办法在运行时从用户那里获取版本号并使用该版本(如果提供),否则默认为当前版本?

【问题讨论】:

  • 大多数 GUI 内容现在都有一个按钮可以在 YAML 中显示它,因此您可以复制/粘贴它。这不是一个选择吗?如果我没记错的话,您也可以将现有管道导出为 YAML,它应该捕获您所追求的内容。
  • @mwilson 我只能在任务级别看到“查看 YAML”选项。即使在 YAML 中,一些体验也存储在 yaml 定义之外。例如,当我们运行管道时,使用“变量”按钮添加运行时可配置值。

标签: azure azure-devops yaml azure-pipelines azure-devops-yaml


【解决方案1】:

目前尚不支持用户体验。目前,我们必须使用硬编码方式。

之前有人在 DC 发布过this feature request。您可以为这个未解决的问题投票并关注它以跟踪那里的请求。如果得到足够多的选票,团队会认真考虑。

【讨论】:

  • 我已经澄清了这个问题。我绝对不是在谈论 Intellisense 支持。功能请求是正确的。它有我的投票。如果没有此功能,过渡到 YAML 的团队每次发布非最新版本时都很难更改代码。
  • 对于 Intellisense 支持的误解,我们深表歉意。答案已更新:)
  • 谢谢。如果可以,请回答更新后的问题。
  • 你能分享更多关于你的 yaml 的细节吗?我不确定您将条件放在哪里,以及 buildTodeploy 变量的含义是什么?我认为这不是预定义的变量...另外,变量的格式可能会影响您的管道,您可以找到正确的格式here
  • 用完整的 YAML 更新了问题。
猜你喜欢
  • 2022-11-03
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2019-04-06
  • 1970-01-01
  • 2019-06-01
相关资源
最近更新 更多