azure-devops - 在 prem 构建代理 BUILD_ARTIFACTSTAGINGDIRECTORY 路径上的 azure 中随机数的预定义构建变量名称是什么
问题描述
我用我的本地代理设置了我的天蓝色管道。我需要知道预定义变量才能在我的**BUILD_ARTIFACTSTAGINGDIRECTORY**
= C:\Users\Administrator\agent_work\78\a (ie) 78中获取随机数。
我看了一下预定义变量,但可以找到这个。
我也跟着这个答案。但是78没有在任何变量中定义。
请任何人都可以协助如何找到变量?
解决方案
我需要知道预定义的变量才能获得随机数。
不是预定义变量,因此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。
推荐阅读
- python - 如何将多个服务从同一个 Django 项目部署到 Google App Engine?
- javascript - 如何找到数组中的最后一个人物?
- javascript - React 中的 If 语句
- r - 如何在 R 中的 ggplot 中的两个并排图上为代码添加标签?
- java - 基于其他注解创建自定义 Kotlin 注解
- javascript - 使用 Dot Net Report Builder 导出为 PDF 错误
- php - 如何在 Laravel 8 微风中注册后停止自动登录
- javascript - 多次导入相同模块时的内存影响(webpack)
- genome - Gviz BiomartGeneRegionTrack 如何删除符号名称?
- ethereum - 首次为 dApp 启动 geth