如何在 Azure Pipelines YAML 构建定义中接收修订
Posted
技术标签:
【中文标题】如何在 Azure Pipelines YAML 构建定义中接收修订【英文标题】:How to receive Revision in Azure Pipelines YAML build definition 【发布时间】:2019-07-11 13:53:59 【问题描述】:我使用 Azure Pipelines (Azure DevOps) 创建了一个新版本,它运行良好。
通常,您使用$(Rev:.r)
在构建中获取修订。不幸的是,在构建步骤中似乎没有替换/设置变量。唯一可以使用它的地方是 YAML 文档中的 name:
属性。
现在我在名称中设置它并在某些 PowerShell 中提取它,如果您可以通过环境变量获取它,则没有必要。
如何在新版本中(在 YAML 文档中的 name:
属性之外)获取修订版(如 $(Rev)
)?
(在 Docker 内部运行的构建代理 - 但这不应该影响上述内容)
【问题讨论】:
【参考方案1】:如果不进行解析,您将无法获得修订号,它不会作为单独的字段存储在某处或环境变量中。
$(Rev:.r)
部分指示 Azure DevOps 提供使内部版本号唯一的第一个数字(并且在该特定示例中,在其前面放置一个点)。
正如你所说,唯一的方法是使用 PowerShell 脚本来获取值:
$buildNumber = $Env:BUILD_BUILDNUMBER
$revision= $buildNumber.Substring($buildNumber.LastIndexOf('.') + 1)
编辑:
您可以安装执行此操作的 Get Revision Number 扩展程序。
【讨论】:
好的,我就是这么做的。也许它会在功能中成为可能。 你可以在这里向 MS 推荐一个功能developercommunity.visualstudio.com/content/idea/…以上是关于如何在 Azure Pipelines YAML 构建定义中接收修订的主要内容,如果未能解决你的问题,请参考以下文章
Azure DevOps Pipelines - 仅在上一次运行成功时运行 YAML 管道
Azure Pipelines Stages (YAML) 上的手动触发器
Azure Pipelines 将 YAML 用于具有不同变量值但没有 YAML 重复的多个环境(阶段)
如何:在 Azure DevOps YAML 中有条件地插入模板?