如何获得建立管道的完整路径

时间:2018-07-26 08:22:00

标签: azure-devops azure-pipelines azure-pipelines-build-task

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:-1)

您必须在构建管道中使用代理。该代理可以托管在VSTS上,也可以在您的场所内。

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

  • Build.Repository.LocalPath或Build.SourcesDirectory或 System.DefaultWorkingDirectory = c:\ agent_work \ 1 \ s:本地路径 在下载您的源代码文件的代理上
  • Build.ArtifactStagingDirectory或Build.StagingDirectory = c:\ agent_work \ 1 \ a:代理上任何工件的本地路径 被复制到目的地之前被复制到。

所以回答你的问题:

  1. c:\ agent_work \ 1 \ s ,此处已下载源代码。
  2. c:\ agent_work \ 1 \ a ,您可以在此处复制任何内容。构建定义使用此路径在构建结束时生成构建工件。