代码之家  ›  专栏  ›  技术社区  ›  Scott Langham

如何获取构建管道的完整路径

  •  0
  • Scott Langham  · 技术社区  · 6 年前

    在自定义VSTS生成任务中,我希望知道当前生成管道的路径,以便可以重用该路径自动计算生成放置文件夹的路径。

    在我创建构建管道的VSTS构建门户中,可以将它们组织到文件夹中。我需要在生成任务中使用此文件夹路径。我可以从以下变量获取构建管道的名称: https://docs.microsoft.com/en-us/vsts/pipelines/build/variables?view=vsts&tabs=batch

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

    2 回复  |  直到 6 年前
        1
  •  1
  •   Daniel Mann    6 年前

    构建定义所在的文件夹纯粹是一个构建定义的东西——它与正在运行的构建没有关系,因此它不作为构建时间变量填充。

    您可以通过调用RESTAPI来检索构建定义: GET https://{accountName}.visualstudio.com/{project}/_apis/build/definitions/{definitionId}?api-version=4.1 . 帐户URI和生成定义ID在正在运行的生成中可用,您可以轻松地允许脚本访问OAuth令牌(填充在 SYSTEM_ACCESSTOKEN 环境变量)用于身份验证。

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

        2
  •  -1
  •   Ankush Jain    6 年前

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

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

    • build.repository.localpath或build.sourcesdirectory或 system.defaultworkingdirectory=c:\agent\u work\1\s: 局部路径 在下载源代码文件的代理上
    • build.artifactStagingDirectory或build.stagingDirectory= C:\代理工作\1\a: 代理上任何项目所在的本地路径 在被推送到目的地之前被复制到。

    所以回答你的问题:

    1. C:\代理工作\1\s 此处下载源代码。
    2. C:\代理\u工作\1\a 在这里你可以复制任何东西。生成定义使用此路径在生成结束时生成生成生成项目。