Azure DevOps YAML CI和CD管道

时间:2020-06-18 18:18:24

标签: azure-devops yaml

我在Azure DevOps Services中有用于CI和CD的单独的yaml管道。 CI管道会将工件发布到文件共享位置。 \ fileshare \ project

enter image description here

enter image description here

在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

1 个答案:

答案 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,并指定其他projectpipelinerunVersion属性。参见下文:

 - task: DownloadPipelineArtifact@2
      inputs:
        source: specific
        project: yourProjectName
        pipeline: CI-pipeline_YAML
        runVersion: latest
        path: $(Build.ArtifactStagingDirectory)

工件将下载到path中指定的文件夹中。

注意:您需要在可以访问文件共享的自托管代理上运行管道。(它将在云代理上失败,并显示错误“无法读取目录\ fileshare \ project”)。