Azure DevOps - 在构建管道运行期间,代理将文件下载到本地的路径是什么?

问题描述 投票:0回答:4

我们正在使用 Microsoft 托管代理为我们的应用程序的自动化测试场景运行构建管道。我们想要实现的是,通过自动化程序下载文件(从无头 Chrome 浏览器),然后导航到下载路径并打开它。

如何找到Agent内部下载文件的路径?

azure-devops azure-pipelines azure-pipelines-yaml
4个回答
5
投票

官方文档链接快速编译与在 Linux 和 Windows 自托管代理上构建的路径相关的预定义变量列表。

您正在寻找的是

Agent.BuildDirectory
Pipeline.Workspace

预定义变量列表:

变量类型 变量 描述 示例
代理 代理.构建目录 代理上创建给定构建管道的所有文件夹的本地路径 D:\..绅士\_工作
代理 代理.主目录 代理安装的目录 C:绅士
代理 代理.Temp目录 每次管道作业后都会清理的临时文件夹 D:\.. gent\_work\_temp
代理 代理.工具目录 节点工具安装程序和使用Python版本在工具的多个版本之间切换等任务使用的目录 D:\..gent\_work\_tool
代理 代理.工作文件夹 代理的工作目录 c:gent_work
构建 构建.Sources目录 代理上下载源代码文件的本地路径。 c: gent_work \s
构建 构建.ArtifactStagingDirectory 代理上的本地路径,任何工件在推送到目的地之前都将复制到该路径。使用此文件夹的典型方法是通过复制文件和发布构建工件任务来发布构建工件 c:gent_work
构建 构建.StagingDirectory 代理上的本地路径,任何工件在推送到目的地之前都将复制到该路径。 c:gent_work
构建 构建.Binaries目录 代理上的本地路径,您可以用作已编译二进制文件的输出文件夹 c:gent_work
构建 构建.Repository.LocalPath 代理上下载源代码文件的本地路径。 c: gent_work \s
构建 Common.TestResults目录 代理上创建测试结果的本地路径。 c: gent_work \TestResults
管道 管道.工作区 特定管道的工作空间目录 /家/vsts/工作/1
系统 系统.默认工作目录 代理上下载源代码文件的本地路径。 c: gent_work \s

2
投票

安装代理时,您指定工作目录。在管道任务中,您可以使用 $(Agent.BuildDirectory) 等变量准确找出该目录中文件的暂存位置。这可能不是您需要的确切位置,但我认为它的方向是正确的。

有关预定义变量的完整列表,请参阅此处:https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml


1
投票

您可以查看此文档

Linux 的默认位置

/home/<username>/Downloads

我在

Microsoft hosted agent-window2019
中使用测试 C# 代码(来自 Daniel 的提示!)进行测试,例如:

        static void Main(string[] args)
        {
            string FILEURI = "https://www.nuget.org/api/v2/package/Cauldron.Newton/2.0.0";
            System.Diagnostics.Process prozess = new System.Diagnostics.Process();
            prozess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
            prozess.StartInfo.Arguments = "--download " + FILEURI;
            prozess.Start();
            Console.WriteLine("Test starts.");
        }

然后我使用像

dir c:\users\VssAdministrator\cauldron.newton.2.0.0.nupkg /s /b
这样的命令来查找下载文件的位置:
cauldron.newton.2.0.0.nupkg

然后我确认Chrome的默认下载位置仍然是

C:/Users/{user}/Downloads
,与使用自助代理或本地下载相同。 (VssAdministrator是运行Windows托管代理时的用户)

所以我认为Linux托管代理应该有类似的行为。您可以尝试从

/home/<username>/Downloads
文件夹中查找您的文件。希望有帮助。


0
投票

我部分通过这个问题找到了答案,我问的一个问题问的是完全相同的事情,但对我来说,它是: C:\Users\VssAdministrator\Downloads

© www.soinside.com 2019 - 2024. All rights reserved.