繁体   English   中英

如何在 CD 管道中使用 CI 管道发布的工件

[英]How to consume artifacts published by CI pipeline in CD pipeline

对于前端 angular 项目,我有使用 Azure DevOps 的 CI 和 CD 管道。 两者都是独立的管道。

这是用于生成已发布工件的 CI 管道的 YAML 文件:output_final.zip。 下面的管道利用 Azure 管道来生成已发布的工件。

# Node.js with Angular
# Build a Node.js project that uses Angular.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- integration

pool:
  vmImage: ubuntu-latest

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '14.x'
  displayName: 'Install Node.js'
- powershell: |
   $buildNumber="$(Build.BuildNumber)"
   echo $buildNumber  > src/version.txt
- script: |
    npm install -g @angular/cli
    npm install
    ng build --prod
  displayName: 'npm install and build'

- task: CopyFiles@2
  displayName: 'Copy Files of UI'
  inputs:
    SourceFolder: 'dist/source'
    TargetFolder: '$(Build.ArtifactStagingDirectory)/output'
    OverWrite: true
- task: ArchiveFiles@2
  displayName: 'Archive'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/output/'
    includeRootFolder: false
    archiveFile: '$(Build.ArtifactStagingDirectory)/output/output_final.zip'
- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact'
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/output/output_final.zip'
    ArtifactName: drop

现在我有一个单独的 CD 管道,它利用自托管的私人代理。 在这个 CD 管道中,我想在 CD 管道中使用 CI 管道发布的工件

任何人都可以帮助我了解如何使用 CI 管道发布的工件并通过一些示例 YAML 示例在 CD 管道中使用它。

我的建议是使用 Publish Pipeline Artifact 任务来发布 CI 工件。 然后,在您的 CD 管道中,使用下载管道工件来使用它。 您可以配置下载任务以从当前运行或特定运行中获取工件。 在你的情况下,听起来你想要一个特定的运行,因为 CI 管道是独立的。

下面是 yaml 任务的示例:

#CI Task
- task: PublishPipelineArtifact@1
  displayName: 'Publish pipeline Artifact'
  inputs:
    targetPath: '$(Pipeline.Workspace)'
    artifact: '<Some Artifact Name>'
    publishLocation: 'pipeline'
    
#CD Task example
- task: DownloadPipelineArtifact@2
  inputs:
    buildType: 'specific'
    project: ''
    definition: ''
    specificBuildWithTriggering: true
    buildVersionToDownload: 'latest'
    targetPath: '$(Pipeline.Workspace)'

暂无
暂无

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

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