检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
加速构建任务 构建加速背景介绍 通过Gcc/Clang实现构建加速 对鸿蒙构建工程配置构建加速 对AOSP构建工程配置构建加速 通过代码缓存方式实现构建加速
基于自定义执行机的构建任务,无法使用构建加速能力。 需在本地已准备好C++工程代码。 操作流程 表1 操作流程 流程 说明 新建项目 为本实践新建项目。 新建CodeArts Repo代码仓 为本实践创建构建过程中使用的代码文件。
当前支持的构建加速的场景如下: 通过Gcc/Clang实现构建加速 对鸿蒙构建工程配置构建加速 对AOSP构建工程配置构建加速 通过代码缓存方式实现构建加速 父主题: 加速构建任务
(工具链、代码仓)、构建依赖件准备(ninja文件生成)、编译构建、构建后操作(打包、检查等)。
图1 构建加速命令 加速命令只允许写在最外层,不允许通过shell脚本等调用。 同一次构建任务中禁止混用不同级别的加速命令,将无法保存与执行构建任务。 图2 构建加速错误命令示例 配置后单击“保存并执行”执行构建任务。
在dockerfile中增加“/opt/buildtools”目录供加速工具部署,并确保构建用户对“/opt/buildtools”目录有权限写入。
本地没有缓存的情况下,从服务器下载缓存代码到本地;有缓存的情况下,使用本地缓存并还原目录结构。 代码缓存更新。代码检出有变化时,会增量扫描目录树,缓存差异文件和目录树,加速下次构建缓存效率。
内置工具 shell4.2.46-git1.8.3-zip6.00 shell4.2.46、git1.8.3、zip6.00 Bazel构建 工具版本 内置工具 bazel1.1.0-jdk1.8-gcc4.8.5 bazel1.1.0、jdk1.8、gcc4.8.5 bazel1.1.0
上下文可以是构建执行所在的本地路径“Path”,也可以是远程URL,如Git库、tarball或文本文件等,还可以是“-”。 用法:docker build [options] Path | URL | - options填写方法如下表。Path/URL/-为上下文来源。
方法二:通过配置SWR镜像加速器地址解决 该方法只适用于现象一:dockerHub网络不稳定导致拉取镜像超时或失败。 登录华为云SWR。 选择“镜像资源 > 镜像中心 > 镜像加速器”,复制加速器地址。 替换dockerfile中FROM的基础镜像地址后重新执行构建任务。
配置构建步骤 CodeArts Build内置了30+种构建工具,您可以根据实际使用情况选择使用的构建工具,每种工具分别为您介绍了图形化构建的配置指导和代码化构建的代码示例。
构建缓存配置 新建编译构建任务时,默认选择使用缓存加速构建,用户可以在配置“Maven构建”步骤时选择是否使用缓存。 缓存清理步骤 由于网络抖动、并发构建或其他极端情况,可能出现缓存内容异常导致构建异常,本章节介绍异常缓存的清理过程。
Gradle Wrapper使用教程 在本地环境中,进入代码根目录,执行gradle wrapper命令。
gradle: inputs: gradle: 4.8 jdk: 1.8 command: | # 使用CodeArts提供的gradle wrapper,充分利用缓存加速
构建时需要使用企业专有工具,CodeArts Build平台未支持。 针对于以上构建场景,本实践将为您介绍如何使用自定义构建环境执行构建任务。
编译构建集成Repo下载工具,用户只需进行简单配置即可实现多个代码仓的联动集成。当前支持仅Repo代码仓。 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的PRE_BUILD部分代码信息。
表1 构建加速包 计费方式 包年/包月 适用场景 编译构建服务提供了构建加速能力,使用构建加速能力前需购买构建加速包。构建加速场景请参考构建加速。 构建加速包只支持执行主机为“内置执行机”的构建任务,可选择x86或arm。构建主机配置方法请参考构建环境配置。
登录构建加速包购买页。 单击左侧导航栏的图标,选择“开发与运维 > 编译构建CodeArts Build” 。 在“构建增值特性”区域,单击“购买”。 根据实际需要配置购买详情,并勾选同意声明。 表3 特性包配置 配置项 详情 计费模式 包年/包月。 区域 选择需要使用的区域。
快速 利用云端构建海量构建资源,采用多样化的云端构建加速手段,实现本地构建无法企及的构建速度。 云上弹性资源,任务并行执行。 全局和租户两级缓存。 专线网络,传输更快。 易扩展 灵活对接不同的代码托管服务。 支持用户自定义构建环境。 支持不同的源码托管服务。
编译构建可使用服务扩展点连接第三方代码仓获取项目代码,可以提供对此类连接的新建、编辑、删除等操作。