Azure devops 如何获得构建管道的完整路径

Azure devops 如何获得构建管道的完整路径,azure-devops,azure-pipelines,azure-pipelines-build-task,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,在自定义vsts构建任务中,我想知道当前构建管道的路径,以便可以重用该路径来自动计算到构建放置文件夹的路径 在我创建构建管道的vsts构建门户中,可以将它们组织到文件夹中。我需要在构建任务中使用此文件夹路径。我可以从这里的变量获取构建管道的名称: 但是,文件夹名称没有变量。如何获取文件夹名称?您必须为生成管道使用代理。代理可能托管在VST上,也可能位于您的场所 现在,构建定义中的所有任务都在代理上执行。代理只是一台机器。通常,它在构建过程中使用以下文件夹 Build.Repository.Lo

在自定义vsts构建任务中,我想知道当前构建管道的路径,以便可以重用该路径来自动计算到构建放置文件夹的路径

在我创建构建管道的vsts构建门户中,可以将它们组织到文件夹中。我需要在构建任务中使用此文件夹路径。我可以从这里的变量获取构建管道的名称:


但是,文件夹名称没有变量。如何获取文件夹名称?

您必须为生成管道使用代理。代理可能托管在VST上,也可能位于您的场所

现在,构建定义中的所有任务都在代理上执行。代理只是一台机器。通常,它在构建过程中使用以下文件夹

  • Build.Repository.LocalPath或Build.sources目录或 System.DefaultWorkingDirectory=c:\agent\u work\1\s:本地路径 在下载源代码文件的代理上
  • Build.ArtifactStagingDirectory或Build.StagingDirectory= c:\agent\u work\1\a:代理上的本地路径,其中包含任何工件 在推送到目的地之前复制到
因此,请回答您的问题:

  • c:\agent\u work\1\s此处下载源代码
  • c:\agent\u work\1\a在这里您可以复制任何内容。构建定义使用此路径在构建结束时生成构建工件

  • 构建定义所在的文件夹纯粹是一个构建定义对象——它与正在运行的构建无关,因此不作为构建时变量填充

    您可以通过调用REST API来检索生成定义:
    获取https://{accountName}.visualstudio.com/{project}/_-api/build/definitions/{definitionId}?api版本=4.1
    。帐户URI和生成定义ID在运行的生成中可用,您可以轻松地允许脚本访问OAuth令牌(在
    SYSTEM\u ACCESSTOKEN
    环境变量中填充),以进行身份验证

    这将返回一个JSON对象,其中包含一个
    path
    属性。这就是构建定义的路径