[英]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.