更新时间:2024-05-10 GMT+08:00
分享

代码缓存

概述

代码缓存是指通过一致性HASH、分布式文件存储、增量更新等技术,实现构建时代码下载效率的提升。

  • 使用代码缓存能力需要购买配套构建加速包。
  • 构建缓存只提供文件缓存的上传和下载检出功能,支持用户自定义脚本更新。
  • 该功能目前仅支持北京四区域使用,其余区域后续上线。

前提条件

  • 已有可用项目或下载源。
  • 已购买配套加速特性包。

配置方法

目前仅支持通过YAML配置使用代码缓存,配置在env中,如何编写YAML文件请参考单任务YAML文件结构说明

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
params: # 构建参数,可在构建过程中引用
- name: CLOUD_BUILD_UPLOAD_FLAG  # 参数为有值和为空两种状态,可控制跳过缓存上传至文件服务器
  value: true
- name: CLOUD_BUILD_REMOTE_CACHE # 参数为有值和为空两种状态,可控制会从其他执行机获取缓存
  value: true
env:
  cache: # 使用代码缓存
    - type:code #必填,使用缓存开关
      local_path:code # 必填,代码在构建执行机上存放的相对路径
      command:dos2unix build.sh && sh build.sh # 必填
      branch:master # 选填,分支名,可自定义,与url一起确定缓存标签
      url:git@codehub.devcloud.example.example.com:test/python3.git # 选填,可自定义,与branch一起确定缓存标签
表1 配置参数表

参数项

参数类型

描述

是否必填

CLOUD_BUILD_UPLOAD_FLAG

String

用于控制是否跳过缓存上传文件服务器。

True:是。

为空:否。

CLOUD_BUILD_REMOTE_CACHE

String

用于控制是否从其他执行机获取缓存。

True:是。

为空:否。

type

String

使用缓存开关。

local_path

String

代码在构建执行机上存放的相对路径。

command

String

运行下载/更新代码的脚本命令。

branch

String

分支名,可自定义,与url一起确定缓存标签。

url

String

链接,可自定义,与branch一起确定缓存标签。

工作模式介绍

  1. 代码缓存下载。本地没有缓存的情况下,从服务器下载缓存代码到本地;有缓存的情况下,使用本地缓存并还原目录结构。
  2. 代码缓存更新。代码检出有变化时,会增量扫描目录树,缓存差异文件和目录树,加速下次构建缓存效率。

效果示例

在缓存盘有缓存的情况下,200万个文件(190G)还原时间在2到3分钟(仅供参考,实际效率受执行机规格、负载等影响)。

分享:

    相关文档

    相关产品