如何更改代理构建目录?

Posted

技术标签:

【中文标题】如何更改代理构建目录?【英文标题】:How to change the agent build directory? 【发布时间】:2022-01-23 10:06:54 【问题描述】:

我的 Azure DevOps 管道当前创建路径“C:\Agent-xyz_work\23\s...”,以保留将在子项目构建中使用的构建输出。有没有办法将构建文件夹设置为“C:”或“C:\w”等?我需要这个,因为我的第三方 Wix 工具集之一有一个自定义构建操作,当路径太长时会截断路径。为了保持简短,我想让路径尽可能短。

【问题讨论】:

【参考方案1】:

您可以更改预定义变量的值。

对于经典发布管道:

变量:

任务:

日志:

预定义变量的列表可以找到here

【讨论】:

【参考方案2】:

代理的工作目录是安装代理时配置的,运行时不能更改:

代理设置--work <workDirectory> - 存储作业数据的工作目录。默认为代理目录根目录下的_work。工作目录归给定代理所有,不应在多个代理之间共享。

我建议您暂停并reconfigure your agent 使用您选择的工作目录。

【讨论】:

【参考方案3】:

预定义变量中所述的代理安装目录是:

Agent.HomeDirectory: c:\agent

代理工作目录是

Agent.WorkFolder : c:\agent_work

在这个文件夹中(C:\agent\work\builID),你可以找到一些子文件夹:

a -> 人工制品 b -> 构建目录 s -> 源目录

您可以使用 powershell 脚本并在您想要的文件夹上复制任何工件或构建输出。

Powershell 示例:

$destinationFolder = "C:\myfolder"
$sourcesDirectory = "$(Build.ArtifactStagingDirectory)\result"
robocopy $sourcesDirectory $destinationFolder /im /e

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

【讨论】:

感谢您的评论。如果我在运行管道之前设置变量,则构建输出表明它仍在使用“C:\Agent-xyz_work\23\s...”。我在这里犯了什么错误吗? 我不确定这些值是否可以在运行时被覆盖。您可以在配置自定义代理时设置代理工作目录。对于 Azure 提供的代理池,我不确定您是否可以更改默认值。这就是为什么我建议将您需要的任何文件从工作目录复制到您请求的目录中。 谢谢@GeralexGR。我无权访问代理池。另一个团队维护它。那我想我不能覆盖和诉诸你复制东西的其他想法

以上是关于如何更改代理构建目录?的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure Pipelines 的 Ubuntu 代理上构建 Android 项目时,SDK 目录不可写

如何配置 TeamCity 构建代理以通过 SOCKS 代理使用 git 和 git:// 协议?

如何防止用户代理被用户更改

我们如何根据状态图更改 3D 动画对象(代理表示)颜色?

VSTS:如何重新排队损坏的构建和切换代理队列

如何修改chrome代理服务器