Azure DevOps管道需要很长时间才能复制节点模块 “复制文件”任务发布构建工件任务

问题描述

一直在建立Azure DevOps管道以捆绑功能并将其部署到GCP(部署部分工作正常,没有问题)。

但是整个过程要花费很多时间,是否有任何建议可以减少部署时间?

azure-pipeline.yaml

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: copyFiles@2
  inputs:
    Contents: '**'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: Npm@1
  inputs:
    command: 'install'
    workingDir: '$(Build.ArtifactStagingDirectory)/functions'
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

尽管发布管道只是在读取拖放内容,并通过shell脚本推送它。

enter image description here

在npm安装之后,整个管道在复制节点文件上花费大量时间(超过10分钟)。有什么办法可以使这个过程更快?

解决方法

根据您的YAML文件,在复制并发布到放置文件夹时,您已经包含了所有文件。

另一种选择是选择必要的文件,并将node_modules文件夹排除在发布到服务器之外。这将有助于减少时间。用户界面设置示例供参考。

“复制文件”任务

源文件夹:$(Build.SourcesDirectory)

内容:

**\**
!**\node_modules\**

目标文件夹:$(build.artifactstagingdirectory)

enter image description here

发布构建工件任务

发布构建工件任务:$(build.artifactstagingdirectory)

工件名称:drop

enter image description here