云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

缓存通过保留和恢复步骤运行之间的包和依赖关系,帮助您加快步骤的执行速度。通过这种方式,你可以避免在每次运行该步骤时重复安装或加载大型依赖项,从而减少构建时间。

本机步骤根据需要执行缓存,因此它们总是尽可能快地执行。只有在使用通用时,才需要使用本页中描述的方法Bash步骤,或者本机步骤是否在其onStartonComplete执行块。

页面内容


缓存是如何工作的

缓存通过以下方式执行效用函数用于在Artifactory文件存储库中存储和恢复数据。通过这种方式,步骤可以从先前执行的运行中安装或加载的依赖项中获益。

缓存文件作用域

方法存储的缓存文件add_cache_files函数将与该步骤相关联,并且仅对restore_cache_files函数在随后的运行中执行相同的步骤。

不能将缓存文件传递给管道中的其他步骤。例如,如果step_1添加缓存文件step_1_cache,step_2尝试恢复step_1_cache什么也装不上。

并行运行的步骤可以覆盖缓存。因此,尝试并行更新步骤或管道状态的步骤将导致只有为步骤/管道保存的状态的最后一个版本可供未来的步骤使用。

Filestore的局限性

通常,Artifactory文件存储库提供用于存储和恢复数据的最高可用性能。

但是,您体验到的速度将取决于Artifactory配置使用的存储介质。如果Artifactory已配置为在本地或挂载的文件存储上使用文件系统,那么这是快速存储,缓存将始终加速步骤执行。如果Artifactory已配置为使用远程存储,如S3或Google Cloud storage,那么往返文件存储的速度可能会变慢减少缓存的用处:

  • 需要很长时间安装的文件总是受益于缓存。因此,任何与bundler、npm、composer、pip等相关的东西都是缓存的绝佳候选。
  • 需要很长时间下载但安装速度很快的文件不会从缓存中受益,因为从S3下载所需的时间与从原始源下载所需的时间一样多。示例包括编译的二进制文件、JDK包等。

例子

下面的示例缓存一个的结果npm安装为后续运行

2022世界杯阿根廷预选赛赛程资源:-名称:my_gitrepo类型:GitRepo配置:gitProvider: my_github-integration #替换为您的集成路径:my-github/my-pipelines-project #替换为您的存储库路径分支:包括:主管道:-名称:pipelines_caching步骤:-名称:step_1_pipelines_caching类型:Bash配置:inputResources: -名称:my_gitrepo执行:onExecute:- cd $res_my_gitrepo_resourcePath - restore_cache_files npm_cache $res_my_gitrepo_resourcePath/node_modules - npm install onComplete: - add_cache_files $res_my_gitrepo_resourcePath/node_modules npm_cache . sh


  • 一步的onExecute块执行restore_cache_files函数来加载缓存的NPM依赖项,如果它们在之前的运行中可用的话。如果不存在,则不会产生错误,因此步骤的其余部分将不中断地执行。
  • npm安装运行时,它将识别缓存中是否已经存在依赖项,因此该步骤将更快地执行。如果没有缓存要加载,那么npm依赖项将被安装。
  • 当该步骤完成后,它总是会将npm依赖项写入缓存,以便在下次运行该命令时可以使用它们管道


  • 没有标签
版权所有©2022 JFrog Ltd.