Azure DevOps 构建管道花费的时间太长(25-30 分钟)

2023-12-21

我是 YAMl 文件和 ci/cd 的新手,最近我加入了一个有 ci/cd 管道的项目,当我们运行管道构建时大约需要 25-30 分钟。应用程序本身并不是那么巨大,我想说它是中型整体应用程序。下面你可以看到我的 YAML 文件

trigger:
- development

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Test'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: Npm@1
  inputs:
    command: 'install'
    workingDir: 'frontend'

- task: Npm@1
  inputs:
    command: 'custom'
    workingDir: 'frontend'
    customCommand: 'run build-test'
    
- task: Npm@1
  inputs:
    command: 'install'
    workingDir: 'admin-frontend'

- task: Npm@1
  inputs:
    command: 'custom'
    workingDir: 'admin-frontend'
    customCommand: 'run build-test'

- 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)'
    msbuildArchitecture: 'x64'
    createLogFile: true
    logFileVerbosity: 'diagnostic'


- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Pipeline.Workspace)'
    artifact: 'Web-Project-Test'

Also take a look the picture of the particular step times enter image description here

正如你所看到的,npm 花费了大量时间,我猜会有缓存机制,但我不知道如何正确更改我的 YAMl 文件,完全删除 npm 安装步骤还是不删除?


管道缓存 https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops可以通过允许在以后的运行中重复使用一次运行的输出或下载的依赖项来帮助缩短构建时间,从而减少或避免再次重新创建或重新下载相同文件的成本。这样你就可以缓存npm modules参考Node.js/npm https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops#nodejsnpm

variables:
  npm_config_cache: $(Pipeline.Workspace)/.npm

steps:
- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    restoreKeys: |
       npm | "$(Agent.OS)"
    path: $(npm_config_cache)
  displayName: Cache npm

- script: npm ci

此外,使您能够更好地控制安装构建和部署所需的依赖软件。此外,机器级缓存和配置在每次运行中都会保留,这可以提高速度。因此你可以选择使用在管道中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure DevOps 构建管道花费的时间太长(25-30 分钟) 的相关文章

随机推荐

  • 在.NET中,检查当前用户是否可以写入目录

    在 NET中 是否有一种简单的方法来检查当前用户是否有权在目录中创建文件 与 C access 函数等效的东西将是理想的 我不想使用反复试验 创建一个虚拟文件 然后将其删除 除了看起来很黑客之外 其他软件正在监视相关目录中是否有已删除的文件
  • 快速、优化且准确的 RGB <-> HSB 转换代码(C 语言)

    我正在寻找一种在纯 C 中快速 准确地实现 RGB 到 HSB 以及 HSB 到 RGB 的方法 请注意 我专门寻找色调 饱和度 亮度和notHSL 亮度 当然 我已经在谷歌上进行了广泛的搜索 但速度在这里是最重要的 我正在寻找任何关于可靠
  • Excel 上的 VBA 错误:未找到方法或数据成员

    My code Public Sub splitUpRegexPattern Dim regEx As New RegExp Dim strPattern As String Dim strInput As String Dim strRe
  • Photoshop Javascript 获取活动文档中的所有图层

    我确信 Photoshop 脚本编写者之前应该讨论过这个问题 我写了一个解决方案如下 我认为逻辑上是对的 但结果却不对 任何人都可以帮助检查代码中的错误 或者对这个主题有想法吗 我想获取文档中的所有图层 Code function getA
  • 如何使用jquery进行重定向?

    我在登录页面上 如果用户输入相同的用户名和密码 那么我必须将用户转发到下一页 这怎么可能 我该怎么做呢 window location next page 普通JS
  • Retrofit 2 和 okhttp 3 的缓存错误

    我正在尝试缓存来自我公司 API 的 HTTP 响应 但应用程序似乎无法访问缓存目录 W System err 删除失败 ENOENT 没有这样的文件或目录 data user 0 com appname cache cache file
  • 如何从语音合成 API 获取音频结果?

    The 语音合成API http updates html5rocks com 2014 01 Web apps that talk Introduction to the Speech Synthesis API允许 Chrome Bet
  • 为 CollectionView 中的部分设置边框

    I want to create the collection view like this 问题是我想为每个部分制作一个圆角边框并更改其背景颜色 谁能告诉我怎么做 你可以实现这样的UICollectionView带有一些定制的外观UICo
  • 继承:从子类访问基类字段

    子类对象如何引用超类 例如 public class ParentClass public ParentClass No arg constructor protected String strField private int intFi
  • SQL错误我无法弄清楚[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions CREAT
  • 无缝滚动文本

    我正在尝试实现类似于新闻收报机的功能 但我不知道正在滚动的文本的大小 文本结尾必须紧跟文本开头 换行 我当前的解决方案包括复制文本以使其看起来无限 但我在使其看起来无缝时遇到问题 目前我有这个 http jsfiddle net thein
  • Android 中的SectionIndexer 与GridView

    是否可以使用SectionIndexer with a GridView在安卓中 快速滚动工作正常 我正在使用扩展的自定义适配器BaseAdapter 该适配器目前正在实施SectionIndexer并且似乎与在线和 Stack Overf
  • GLFW 是否设计为在没有 LWJGL(在 java 中)的情况下使用?

    我知道 LWJGL 只是 OpenGL 的包装 它是一个java库 旨在使用java语言中的较低级别的OpenGL函数 据我现在了解 GLFW 只是一个库 它可以创建更好的窗口来显示图形 所以 GLFW 只是一个比 LWJGL 以前更好的方
  • MATLAB中冒号运算符的含义

    我遇到了一些带有冒号的 MATLAB 语法 但我并不完全理解 第一个问题 表达方式 0 pi 4 pi结果得到答案 0 0 7854 1 5708 2 3562 3 1416 为什么会这样呢 我认为冒号运算符被用作引用索引的快速方法 这样我
  • 如何从 MySQL Workbench 中的图表生成 SQL 脚本?

    我已经在 MySQL Workbench 中创建了一个包含表 外键等的 EER 图 现在我想生成一个 sql 脚本来创建该数据库 我怎么做 Try File gt Export gt Forward Engineer SQL CREATE
  • 如何在我们的 iPad 或 iPhone 应用程序中打开应用程序商店?

    您好 我想在我们的应用程序中使用特定的发布商搜索或特定的应用程序类型打开应用程序商店 单击按钮 让我们说更多应用程序的 您可以在此处获取应用程序的适当 URL http itunes apple com linkmaker http itu
  • 另存为启用宏的工作簿[重复]

    这个问题在这里已经有答案了 VBA无法另存为 xlsm文件 如果我保存为标准 xls文件整个代码有效 我将文件保存在正确的位置 任务 从当前书籍中 循环遍历 CategoryList 工作表中的单元格并创建工作簿副本并另存为原始文件 xls
  • 有时java.net.SocketTimeoutException:读取超时。有时不

    我有这个奇怪的错误 java net SocketTimeoutException Read timed out 也许你们中的某个人可以帮助解决这个问题 事实是这些 我正在与Eclipse 有一个雄猫 v7 然后我执行一个函数 其中有 ca
  • Sharepoint 中是否有可用于项目级别权限的 Web 服务?

    通过网络服务 我尝试设置文档库内文档的用户权限 是否有任何 Web 服务可用于对共享点中的文档设置 读取 完全控制 贡献 目前 不存在用于应用细粒度权限的 OOTB Web 服务 最好的办法就是访问网站或列表 http msdn micro
  • Azure DevOps 构建管道花费的时间太长(25-30 分钟)

    我是 YAMl 文件和 ci cd 的新手 最近我加入了一个有 ci cd 管道的项目 当我们运行管道构建时大约需要 25 30 分钟 应用程序本身并不是那么巨大 我想说它是中型整体应用程序 下面你可以看到我的 YAML 文件 trigge