首页 > 解决方案 > 在 prem 构建代理 BUILD_ARTIFACTSTAGINGDIRECTORY 路径上的 azure 中随机数的预定义构建变量名称是什么

问题描述

我用我的本地代理设置了我的天蓝色管道。我需要知道预定义变量才能在我的**BUILD_ARTIFACTSTAGINGDIRECTORY**= C:\Users\Administrator\agent_work\78\a (ie) 78中获取随机数。

我看了一下预定义变量,但可以找到这个。

我也跟着这个答案。但是78没有在任何变量中定义。

请任何人都可以协助如何找到变量?

标签: azure-devopscontinuous-integrationazure-pipelines

解决方案


我需要知道预定义的变量才能获得随机数。

不是预定义变量,因此78我们不能使用记录在案的预定义变量来表示它。

此外,这不是一个随机数。每次我们创建一个新的管道并在特定代理上运行管道时,它都会创建一个新number-folder的下agent_work_work文件夹。

在此处输入图像描述

关于如何78来的一些细节:

我曾经使用代理运行六个不同的管道,所以我的文件夹下有六个文件_work夹(与您的文件夹相同agent_work)。如果我创建一个新的构建管道,然后使用这个代理运行管道,那么我会得到 new folder 7。所以number folder这里的每一个都可以代表一个管道。

他们的秘密存储在SourceRootMapping文件夹中。该Mappings.json文件下的文件记录了最后的内部版本号,每次创建新文件夹时都会增加。您可以找到许多以 命名的文件夹BuildDefinitionID,在其中您可以找到SourceFolder.json有关以下信息的文件:

  • 编号文件夹与对应管道的关系
  • 代理目录,AgentArtifactstagingDir,...
  • 上次运行时间、RepoID、OrgID、ProjectID...

请任何人都可以协助如何找到变量?

目前,该Agent.BuildDirectory变量最接近您需要的文件夹编号。因此,您可以在管道开始处添加一个 Powershell 内联任务以获取文件夹编号。我的 PS 脚本:

#Get the FolderID so that following commands in this task can use it via $FolderID.
$FolderID = Split-Path "$(Agent.BuildDirectory)" -Leaf

#Check its value.
Write-Host $FolderID

#Set it as job-scoped variable so that following ateps/tasks can use it via $(FolderID).
Write-Host "##vso[task.setvariable variable=FolderID]$FolderID"

在您的管道的第一个执行此脚本,然后后续任务可以通过$(FolderID). 要在第一个 PS 任务中使用 FolderID,您应该改用 $FolderID。


推荐阅读