繁体   English   中英

从另一个管道 Azure 下载管道工件

[英]Download pipeline artifact from another pipeline Azure

我对这个管道非常陌生,我正在尝试构建一种自动化的方式来为我的应用程序构建.msi安装程序文件。

我有 2 个项目.Net CorePython ,所以我创建了 2 个管道。 .Net Core 管道将构建文件并将其保存在一个位置,Python 管道使用这些文件(来自位置)作为其依赖项并构建一个新的.msi文件,管道中的最后一部分newsetup.py构建.msi我将传递.Net Core 管道的 output 文件的位置。

我得到的错误Artifact dropcli was not found for build 150.

.Net Core 管道脚本:

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(Build.ArtifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    
- task: PublishPipelineArtifact@1
  inputs:
   targetPath: '$(Pipeline.Workspace)'
   artifact: 'dropcli'
   publishLocation: 'pipeline'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

Python 流水线脚本:

- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'current'
    artifactName: 'dropcli'
    targetPath: '$(Pipeline.Workspace)'

- task: PythonScript@0
  inputs:
    scriptSource: 'filePath'
    scriptPath: 'src/python/newsetup.py'
    arguments: 'bdist_msi $(Pipeline.Workspace)'

另外,如果我在某处指定内部版本号,在创建新管道时是否会成为问题? 或者这是一个限制?

在您的DownloadPipelineArtifact@2任务中, buildType的值为current 这意味着您正在下载当前运行中的工件。 您应该将buildType设置为specific 这是从特定管道下载最新工件的示例:

- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    project: '{project id}'
    definition: '{pipeline id}'
    buildVersionToDownload: 'latest'
    artifactName: 'dropcli'
    targetPath: '$(Pipeline.Workspace)'

您可以点击任务顶部的“设置”,它将帮助您更轻松地完成任务。

在此处输入图像描述

在此处输入图像描述

单击下载管道工件任务以获取有关此任务的 arguments 的详细信息。

如果我在某处指定内部版本号,创建新管道时会不会有问题? 或者这是一个限制?

如上所述,您不需要指定内部版本号,您需要指定的是管道定义 id。 您可以下载管道的最新工件或管道的特定构建的工件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM