我在Azure DevOps Services中有用于CI和CD的单独的yaml管道。 CI管道会将工件发布到文件共享位置。 \ fileshare \ project
在CD管道中,我将CI管道用作资源,以便可以部署从CI管道产生的工件。
resources:
pipelines:
- pipeline: POC_pipeline # identifier for the pipeline resource
source: CI-pipeline_YAML # source pipeline definition name
我的问题是如何下载此工件,以及从CI管道获取已发布工件的路径的预定义变量名是什么。
我尝试使用,但它没有下载任何内容,仅在将工件推送到Azure DevOps时有效。
steps:
- download: POC_pipeline
答案 0 :(得分:1)
似乎download
任务无法下载发布到文件共享的工件。我可以重现同样的问题。您可以report this problem(单击报告问题并选择 Azure开发人员)给Microsoft开发团队。
作为解决方法,您可以使用Download Fileshare Artifacts task下载文件共享工件。
- task: DownloadFileshareArtifacts@1
inputs:
filesharePath: '\fileshare\project'
artifactName: artifactName
downloadPath: $(Build.ArtifactStagingDirectory)
工件将下载到downloadPath
中指定的文件夹中。在上面的示例中,您将在$(Build.ArtifactStagingDirectory)/artifactName
(即C:\agent\_work\2\a\artifactName
)中找到这些工件
选中here以查找更多预定义变量。
您还可以使用Download Pipeline Artifacts task下载文件共享工件。您需要将source
指定为specific
,并指定其他project
,pipeline
,runVersion
属性。参见下文:
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: yourProjectName
pipeline: CI-pipeline_YAML
runVersion: latest
path: $(Build.ArtifactStagingDirectory)
工件将下载到path
中指定的文件夹中。
注意:您需要在可以访问文件共享的自托管代理上运行管道。(它将在云代理上失败,并显示错误“无法读取目录\ fileshare \ project”)。