从引用的管道资源中获取最新的构建 ID

Mik*_*tly 5 yaml azure-devops azure-pipelines azure-pipelines-release-pipeline

在经典发布管道中,可以添加其他管道作为工件资源 - 这些可以是触发器,也可以只是引用。然后,您可以引用有关它们的信息,例如使用$(Release.Artifacts.ARTIFACTNAME.BuildId).

您现在可以在多阶段 yaml 管道中执行类似的操作

resources:
  pipelines:
  - pipeline: MyBuild
    source: My build pipeline name 
    trigger: 
      branches:
      - master

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: Write-Host Referenced pipeline build id is: ???
Run Code Online (Sandbox Code Playgroud)

但是根据上面的 PowerShell 步骤,我找不到一种方法来获取以这种方式关联的资源的构建 ID,而且我还无法在文档中找到任何内容。

我所做的一些绝望的尝试是:

resources:
  pipelines:
  - pipeline: MyBuild
    source: My build pipeline name 
    trigger: 
      branches:
      - master

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: Write-Host Referenced pipeline build id is: ???
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

Joh*_*esH 12

最新的发行说明有一组新的预定义变量。

resources.pipeline.{Alias}.projectName 
resources.pipeline.{Alias}.projectID 
resources.pipeline.{Alias}.pipelineName 
resources.pipeline.{Alias}.pipelineID 
resources.pipeline.{Alias}.runName 
resources.pipeline.{Alias}.runID
resources.pipeline.{Alias}.runURI
resources.pipeline.{Alias}.sourceBranch 
resources.pipeline.{Alias}.sourceCommit
resources.pipeline.{Alias}.sourceProvider 
resources.pipeline.{Alias}.requestedFor
resources.pipeline.{Alias}.requestedForID
Run Code Online (Sandbox Code Playgroud)

请参阅此处https://learn.microsoft.com/en-us/azure/devops/release-notes/2019/sprint-160-update#pipeline-resource-meta-data-as-predefined-variables

  • 而且,令人沮丧的是,我非常接近我的一个疯狂猜测! (2认同)
  • 160 最终被推出到我们的实例中,但是......它不起作用。然而,鉴于我之前的随机猜测非常接近,我又猜测了一些,结果发现发行说明中的​​变量区分大小写且不正确。使用“Resources.Pipeline.{Alias}.RunID”代替“resources.pipeline.{Alias}.runID”,它将起作用。 (2认同)