检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
构建加速背景介绍 针对C/C++语言构建工程,需要提升构建效率的问题,编译构建服务支持构建加速能力,通过分布式编译和增量编译等技术实现构建加速。当前支持的构建加速的场景如下: 通过Gcc/Clang实现构建加速 对鸿蒙构建工程配置构建加速 对AOSP构建工程配置构建加速 通过代码缓存方式实现构建加速
通过代码缓存方式实现构建加速 代码缓存是指通过一致性HASH、分布式文件存储、增量更新等技术,通过构建时代码下载效率的提升,从而实现构建加速。 仅代码化构建可使用代码缓存构建加速。 构建缓存只提供文件缓存的上传和下载检出功能,支持用户自定义脚本更新。 该功能目前仅支持“华北-北京四”区域、代码源为CodeArts
通过Gcc/Clang实现构建加速 Gcc/Clang构建加速是指通过分布式编译、增量编译等技术,实现对软件编译过程的效率提升,支撑企业研发过程的快速迭代,缩短产品的上市周期。 目前该功能仅支持代码源为CodeArts Repo的C/C++语言构建工程的编译构建加速。 使用构建加
对C/C++构建工程进行构建加速(内置执行机/图形化构建) 应用场景 针对C/C++语言构建工程,需要提升构建效率的问题,编译构建服务支持构建加速能力,通过分布式编译和增量编译等技术实现构建加速,支撑企业研发过程的快速迭代,缩短产品的上市周期。 本实践通过L3级别的加速包为您演示如何进行构建加速。 本实践需要依赖使用的其他服务如下:
缓存,通过缓存大幅减少重复编译任务的执行,从而实现提升编译效率的目标。 L3级别:L3级别同时提供分布式编译和增量编译的能力,对于没有变化的代码提供增量编译,对于变化的代码提供分布式编译,最大限度地提升构建效率。 说明: 构建加速LI级别/L2级别/L3级别均包含64vCPU算力。
缓存,通过缓存大幅减少重复编译任务的执行,从而实现提升编译效率的目标。 L3级别:L3级别同时提供分布式编译和增量编译的能力,对于没有变化的代码提供增量编译,对于变化的代码提供分布式编译。最大限度地提升构建效率。 购买数量 根据实际需求填写数量,最多16个。 购买时长 根据实际需要选择1个月~3年。
译构建服务中,委托编译构建服务进行调度并执行构建任务。本实践我们通过“Maven构建”和“上传软件包到软件发布库”两个构建步骤来演示使用自定义执行机的构建场景。 使用Maven构建上传软件包和推送镜像到SWR(内置执行机/代码化构建) 编译构建服务支持通过yaml文件配置构建脚本
不设置:关闭(默认)。 非“1”的其他字符串:开启,字符串视为json文件的自定义路径和名字。 AOSP/aosp.json steps参数项详解 steps配置项定义了构建过程,示例中包含如下两个步骤:PRE_BUILD(构建前准备)和BUILD(编译构建)。 PRE_BUILD 此阶段主要做代码下载,参数解释如下:
解为两个段落,准备和执行 # mv /example/TB1.json OpenHarmony/TB1.json是依赖解析模式独有的准备步骤,文件名字固定,如果工程中存在多个ninja构建,则文件的下标依次增加,例如TBTrace_target_2.json和TB2.json,以此类推。
从右到左显示最近执行结果,绿色为成功,蓝色为执行中,红色为失败,黄色为执行中的任务被中止,灰色为任务未被执行。 启动时间 & 执行时长 构建任务启动时间和构建所用时长。 操作 开始构建、收藏任务、单击展开下拉菜单(编辑、复制、禁用、删除任务,具体操作请参考管理构建任务生命周期)。 单击构建任务
场景2 一个编译构建任务可能会被多次启动,比如:租户A直接在编译构建服务页面启动构建任务A,租户B在流水线工程中调用构建任务A,若租户A和租户B同时启动构建任务,则此时构建并发数为2。 在编译构建服务页面,若构建任务A未执行完成,又启动构建任务A,则此时构建并发数为2。 表1 编译构建并发扩展
-DestinationPath [TargetPath] SourcePath:指定需要复制的文件或文件夹,支持通配符和相对路径。 TargetPath:要复制到的目标路径,支持通配符和相对路径。 说明: -Recurse选项为循环复制子文件夹,但若在SourcePath中使用了通配符,此开
p value: 1 # env和envs配置为非必填项。当用户需要使用条件判断确定使用的主机规格与类型时,选择配置envs env: # 如果配置,则优先级最高。即在此处定义了主机规格与类型,则不使用构建环境配置中选择的主机类型和规格 resource: type:docker
明的参数名称name} params: - name: machineArch value: X86 #构建环境配置,env和envs配置为非必填项,二选一。当用户需要使用条件判断确定使用的主机规格与类型时,选择配置envs env: resource:
oot、Linux内核、文件系统和应用程序在内的所有环节代码。 gnuarm-linux-gcc-4.4.3 符合EABI标准,是Linux早期版本的交叉编译器。 gnuarm-7-2018-q2-update 具有基于Arm Cortex-M和Cortex-R处理器的设备上裸机