云客户?
免费开始>
在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或谷歌云存储,那么较慢的往返文件存储可能会减少缓存的用处:

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

例子

类的结果进行缓存npm安装为后续运行

2022世界杯阿根廷预选赛赛程资源:—name: my_gitrepo类型:GitRepo配置:gitProvider: my_github-integration #替换为您的集成路径:my-github/my- pipelines_project #替换为您的存储库路径分支:包括:主管道:- name: pipelines_caching步骤:- name: step_1_pipelines_caching类型:Bash配置:inputResources: - name: 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


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


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