在发布管道中访问下载的工件的路径是什么?

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

我有一个

.zip
文件作为我发布的工件的一部分。 在我的发布管道中,我使用的是“Powershell 脚本任务”。我需要路径 到我脚本中的这个压缩文件夹。

当发布管道被触发时,它会复制工件:

压缩文件夹的路径:

d:\a\r1\a\_DLR FOI\drop\packedSolution\dlrFoiSolution_managed.zip

如何在我的 PowerShell 脚本中获取文件夹路径

d:\a\r1\a\_DLR FOI\drop\

$(System.ArtifactsDirectory)
只返回到
d:\a\r1\a
.

azure-devops azure-pipelines azure-pipelines-release-pipeline
2个回答
0
投票

试试

$(System.DefaultWorkingDirectory)/_DLR FOI/drop/packedSolution/dlrFoiSolution_managed.zip

应该指向发布定义的工件目录 d: 1.更多变量这里,或者只是添加一个合适的任务(比如复制)到编辑器中的发布定义,浏览链接的工件,然后在那里复制路径。


-2
投票

同样的问题,如何动态获取下载工件的绝对路径,因为我的工件更改了后缀版本,art-1.0.0,art-1.0.1 在这种情况下我们不能使用静态($(System. DefaultWorkingDirectory)/_DLR FOI/drop/packedSolution/dlrFoiSolution_managed.zip)

我找到的解决方案非常适合我(抱歉,它不是 PowerShell,但可以轻松转换),

  1. 使用bash任务在暂存目录中查找文件
    deployableartifact=$(find "$(Agent.ReleaseDirectory)" -type f)
  2. 将输出分配给变量
    echo "##vso[task.setvariable variable=deployableartifact;]${deployableartifact}"
  3. 回声验证
    echo "${deployableartifact}"

还有一种方法,但是比较复杂,使用api获取下载神器元数据{URL}_apis/resources/Containers/?itemPath=&isShallow=true&api-version=4.1-preview.4 - 将返回包含下载工件绝对路径的元数据,

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