【问题标题】:How to consume artifacts published by CI pipeline in CD pipeline如何在 CD 管道中使用 CI 管道发布的工件
【发布时间】:2021-11-17 21:03:09
【问题描述】:

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

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

# 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 管道中使用它。

【问题讨论】:

    标签: azure-devops yaml cicd


    【解决方案1】:

    我的建议是使用发布管道工件任务来发布 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)'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多