华为云用户手册

  • 图形化构建 在配置构建步骤中,添加“Ant构建”构建步骤,参考表1配置参数。 表1 Ant构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Ant构建命令,一般使用系统默认给出的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考Ant官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 version: 2.0 # 必须是2.0 steps: BUILD: - ant: inputs: command: ant -f build.xml ignore_fail: true 表2 代码示例参数说明 参数名称 参数类型 参数说明 command string 配置Ant构建命令。更多命令使用方法可参考Ant官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“CMake构建”构建步骤,参考表1配置参数。 表1 CMake构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置CMake命令,一般使用系统默认给出的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考CMake官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 version: 2.0 # 必须是2.0 steps: BUILD: - cmake: inputs: command: | # 新建build目录 切换到build目录、 mkdir build && cd build # 生成Unix 平台的makefiles文件并执行构建 cmake -G 'Unix Makefiles' ../ && make -j ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置CMake命令。更多命令使用方法可参考CMake官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“PyInstaller构建”构建步骤,参考表1配置参数。 表1 PyInstaller构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置构建打包命令,默认命令是将项目打包成一个可执行文件。更多命令使用方法可参考PyInstaller官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 version: 2.0 # 必须是2.0 steps: BUILD: - python: name: PyInstaller构建 image: cloudbuild@python3.6 inputs: command: | pip config set global.index-url https://pypi.org/simple pip config set global.trusted-host repo.xxcloud.com # -F创建单一的可执行文件,文件位置在dist目录下 # 详细命令参见: https://pyinstaller.readthedocs.io/en/stable/usage.html pyinstaller -F *.py ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 name string 可选参数。 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 image string 可选参数。 填写镜像版本,“cloudbuild@”为固定部分,后面为支持的Python版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 默认值:cloudbuild@python3.6。 command string 配置构建打包命令,默认命令是将项目打包成一个可执行文件。更多命令使用方法可参考PyInstaller官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“SetupTool构建”构建步骤,参考表1配置参数。 表1 SetupTool构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置构建打包命令。 可以使用默认的命令打包为“egg”格式的文件。 Python2.7后建议使用python setup.py sdist bdist_wheel,打包为源码包和whl格式的安装包,以便使用pip安装。 更多命令使用方法可参考SetupTool官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 version: 2.0 # 必须是2.0 steps: BUILD: - python: name: SetupTool构建 image: cloudbuild@python3.6 inputs: command: | pip config set global.index-url https://pypi.org/simple pip config set global.trusted-host repo.xxcloud.com python setup.py bdist_egg ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 name string 可选参数。 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 image string 可选参数。 填写镜像版本,“cloudbuild@”为固定部分,后面为支持的Python版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 默认值:cloudbuild@python3.6。 command string 配置构建打包命令。 可以使用默认的命令打包为“egg”格式的文件。 Python2.7后建议使用python setup.py sdist bdist_wheel,打包为源码包和whl格式的安装包,以便使用pip安装。 更多命令使用方法可参考SetupTool官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 version: 2.0 # 必须是2.0 steps: BUILD: - gradle: inputs: gradle: 4.8 jdk: 1.8 command: | # 使用CodeArts提供的gradle wrapper,充分利用缓存加速 cp /cache/android/wrapper/gradle-wrapper.jar ./gradle/wrapper/gradle-wrapper.jar # 构建未签名的APK /bin/bash ./gradlew build --init-script ./.codeci/.gradle/init_template.gradle -Dorg.gradle.daemon=false -Dorg.gradle.internal.http.connectionTimeout=800000 ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置Gradle命令。更多命令使用方法可参考Gradle官网。 gradle string 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 jdk string 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“Gradle构建”构建步骤,可参考表1配置参数。 表1 Gradle构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 Gradle 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 JDK 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Gradle命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考Gradle官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 图形化构建 在配置构建步骤中,添加“Npm构建”构建步骤,可参考表1配置参数。 表1 Npm构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Npm命令,一般使用系统默认生成的命令即可。如有特殊构建要求,可以在文本域中输入自定义的构建脚本。更多命令使用方法可参考Node.js官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 version: 2.0 # 必须是2.0 steps: BUILD: - npm: image: cloudbuild@nodejs8.11.2 inputs: command: | export PATH=$PATH:~/.npm-global/bin #设置缓存目录 npm config set cache /npmcache npm config set prefix '~/.npm-global' npm config set registry https://repo.huaweicloud.com/repository/npm/ #nodejs版本小于18时可以开启下列配置;大于等于18时请自行在.npmrc文件中设置,禁止采用构建命令方式配置 npm config set disturl https://repo.huaweicloud.com/nodejs npm config set sass_binary_site https://repo.example.com/node-sass/ npm config set phantomjs_cdnurl https://repo.example.com/phantomjs npm config set chromedriver_cdnurl https://repo.example.com/chromedriver npm config set operadriver_cdnurl https://repo.example.com/operadriver npm config set electron_mirror https://repo.example.com/electron/ npm config set python_mirror https://repo.example.com/python npm install --verbose npm run build ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 image string 填写镜像地址,有以下两种格式。 cloudbuild@nodejs8.11.2:以cloudbuild开始,@作为分隔符,后面是CodeArts Build提供的默认镜像版本。 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx command string 配置Npm命令。更多命令使用方法可参考Node.js官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 version: 2.0 # 必须是2.0 steps: BUILD: - quick_app: inputs: command: |- npm config set registry http://7.223.219.40/npm/ # 加载依赖 npm install --verbose # 默认构建 npm run build ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 command string 配置Npm命令,更多命令使用方法可参考Node.js官网。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“Android快应用构建”构建步骤,参考表1配置参数。 表1 Android快应用构建参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Npm命令,更多命令使用方法可参考Node.js官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。
  • 添加自定义“setting.xml”文件 图形化构建 在“Maven构建”的命令窗口执行cat /home/build/.m2/settings.xml命令,任务执行完成后,会在构建日志中展示“settings.xml”文件的内容。 参考构建日志中的“settings.xml”的信息自定义新的“settings.xml”文件。 在“Maven构建”步骤前增加“下载文件管理的文件”构建步骤。 自定义步骤显示名称,工具版本当前仅支持“shell4.2.46-git1.8.3-zip6.00”。 单击“上传”,在弹出的窗口中选择2中自定义的文件,添加描述,勾选相关协议,然后单击“保存”。 在“下载文件”中选择上传的“setting.xml”文件。 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 version: 2.0 # 必须是2.0 steps: BUILD: - download_file: inputs: name: settings.xml ignore_fail: true 表3 下载文件管理的文件代码示例参数说明 参数 类型 说明 name string setting文件名称。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。 文件大小限制为100k。 文件类型限制为:.xml、.key、.keystore、.jks、.crt、.pem。 最多支持上传20个文件。 已上传的文件可通过两种访问路径进行文件管理。 在编译构建服务首页,单击“更多”,选择“文件管理”。 或在“下载文件管理的文件”构建步骤中单击“管理文件”。 在文件管理页面,可以编辑文件、下载文件、删除文件、为用户配置文件操作权限。 在搜索框输入关键字,可搜索文件。 单击操作列,可修改文件名称,并设置是否允许租户内所有成员在编译构建中使用该文件。 单击操作列,可以下载文件。 单击操作列,在下拉框中选择“删除”,可根据弹框提示确认是否删除。 单击操作列,在下拉框中选择“编辑权限”,可在弹出的界面配置用户操作文件的权限。 图1 配置用户操作文件权限 表4 文件管理角色权限说明 权限类型 拥有该权限的角色 添加用户 项目下所有用户。 查看 文件创建者、相同租户的用户。 使用 文件创建者、文件创建者配置了使用权限的用户。 更新 文件创建者、文件创建者配置了更新权限的用户。 删除 文件创建者、文件创建者配置了删除权限的用户。 编辑权限 文件创建者。 创建者默认有所有权限并且不可被删除和修改。
  • 代码化构建 参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 version: 2.0 # 必须是2.0 steps: BUILD: - maven: image: cloudbuild@maven3.5.3-jdk8-open inputs: settings: public_repos: - https://mirrors.example.com/maven cache: true # 是否开启缓存 unit_test: coverage: true ignore_errors: false report_path: "**/TEST*.xml" enable: true coverage_report_path: "**/site/jacoco" command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B ignore_fail: true 表2 代码示例参数说明 参数 类型 说明 image string 填写镜像地址,有以下两种格式。 cloudbuild@maven3.5.3-jdk8-open:以cloudbuild开始,@作为分隔符,后面是编译构建提供的默认镜像。 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx settings map 可选参数。不配置,则默认使用CodeArts提供的setting.xml文件,如果需要使用自定义的“settings.xml”文件,可先添加自定义setting.xml文件,然后在默认的打包命令mvn package -Dmaven.test.failure.ignore=true -U -e -X -B末尾添加--settings settings.xml。 cache bool 可选参数。 配置是否开启缓存。 true:开启。 false:不开启。 默认值:false。 command string 配置执行的Maven命令。如果需要配置更多命令,可参考Maven官网。 unit_test map 可选参数。 配置单元测试。详细操作指导参考配置单元测试。 ignore_fail string 用于控制当前步骤执行失败后是否继续执行下一个步骤。 true:是。 为空:否。
  • 图形化构建 在配置构建步骤中,添加“Maven构建”构建步骤,参考表1配置参数。 表1 Maven构建步骤参数说明 参数 说明 步骤显示名称 构建步骤的名称,可自定义修改。 支持中文、英文、数字、“-”、“_”、英文逗号、英文分号、英文冒号、“.”、“/”、圆括号(中英文)。 字符长度范围为1~128。 工具版本 根据用户实际开发环境的需要,选择对应的工具版本。 CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境。 命令 配置Maven命令,一般使用系统默认生成的命令即可。如果需要配置更多命令,可参考Maven官网。 失败后是否继续运行 当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。 setting配置 自动生成setting文件并配置依赖仓库:可根据用户的IP不同,自动识别最优站点访问CodeArts提供的“setting.xml”文件。 国内用户使用“国内站点”,国际用户使用“国际站点”。建议使用默认配置。 “setting.xml”文件中定义了默认的依赖拉取顺序和镜像源代理等配置信息,如果需要使用自定义的“setting.xml”文件,可添加自定义setting.xml文件,然后在默认的打包命令末尾添加--settings settings.xml,即可使用已添加的“settings.xml”文件执行Maven构建。 公有依赖仓库:默认已添加华为开源镜像站,同时配置了HuaweiSDK仓库。此配置仅在需要添加非CodeArts提供的公有依赖仓库时使用,添加方法如下: 单击“添加”。 填写公有依赖仓库地址,根据需要勾选“release仓库”和“snapshot仓库”。release仓库和snapshot仓库至少勾选一个,也可以同时勾选。 release仓库:勾选后,构建过程将尝试从仓库中下载release版本依赖。 snapshot仓库:勾选后,构建过程将尝试从仓库中下载snapshot版本依赖。 私有依赖库:默认已配置CodeArts提供的私有依赖仓库。此配置仅在需要添加其它私有依赖仓库时使用,添加方法如下: 新建nexus repository服务扩展点。 单击“添加”,选择上一步创建的服务扩展点,并根据需要勾选“release仓库”和“snapshot仓库”。 说明: “release仓库”和“snapshot仓库”两种仓库对应的使用场景区分如下,使用时要务必注意区分,避免出现如“将依赖上传到软件发布库但是构建时无法下载”此类场景。 “snapshot仓库”:对于以调试为目的发布的私有依赖包,一般会给依赖版本号增加-SNAPSHOT后缀(如:1.0.0-SNAPSHOT),执行发布操作时,此类依赖会自动发布到snapshot仓库,发布时无需更新版本号,构建命令中增加-U参数即可拉取最新版本。 对于正式发布的私有依赖包,版本号中不可带-SNAPSHOT后缀(如:1.0.0),执行发布操作时,此类依赖会自动发布到release仓库,发布时必须更新版本号,否则会导致构建过程无法拉取最新依赖包。 发布依赖包到CodeArts私有依赖库 编译构建服务默认使用私有依赖库作为私有依赖下载源,如果需要将构建产物上传至私有依赖库供其他项目依赖使用,则需要添加此配置。配置前,需已创建私有依赖库。配置方法如下: 不配置pom:表示无需发布私有依赖包到CodeArts私有依赖库。 配置所有pom:表示在项目下所有“pom.xml”文件增加deploy配置,使用mvn deploy命令将构建出的依赖包上传到私有依赖仓库。 配置后,需在命令窗口,使用“#”注释命令mvn package -Dmaven.test.skip=true -U -e -X -B,如下图: 删除#mvn deploy -Dmaven.test.skip=true -U -e -X -B命令前的“#”,如下图: 上传的私有依赖包,在其他项目添加pom.xml文件中的groupId、artifactId、version坐标即可引用。 单元测试 如果用户需要对单元测试结果进行处理,可配置此项。详见配置单元测试。 缓存配置 选择是否使用缓存以提高构建速度,选择“使用缓存”后,每次构建时会把下载依赖包缓存起来,后续构建无需重复拉取,可有效提高构建速度。 说明: maven构建的依赖包存入缓存之后,只有当租户下面构建的项目有引进新的依赖包时,才会更新缓存目录,并不支持对已有的依赖包缓存文件进行更新。
  • 开通CodeArts Build 进入购买编译构建服务页面。 参考表1确认资源规格信息,单击“免费开通”。 表1 资源规格 资源项 资源规格 构建时长(分钟/月) 免费构建时长1800分钟/月。 构建并发(个) 1个内置执行机(2U8G)和1个自定义执行机并发。 参考表2确认套餐包配置信息,勾选“我已经阅读并同意”,单击页面右下角“立即开通”,即可下单成功。 表2 套餐包配置 配置项 配置详情 计费模式 包年/包月。 区域 选择需要使用的区域。不同区域购买的资源不能跨区使用,需慎重选择。 产品 CodeArts Build套餐 规格 选择“Build专业版”。 免费使用构建时长1800分钟/月,单租户1个内置执行机(2U8G)并发和1个自定义执行机并发,使用限制性资源池,超过并发数时构建任务会进行排队。用户可额外购买构建加速包提升效率和购买构建并发包扩容。 购买时长 选择“1个月”。 自动续费 勾选后将开启自动续费。自动续费规则请参考自动续费规则说明。 下单成功即服务开通成功。
  • 新建图形化构建任务 通过项目入口方式访问CodeArts Build服务首页。 单击“新建任务”,进入配置“基本信息”页面,参考表1填写构建任务基本信息。然后单击“下一步”,进入“构建模板”页面。 表1 基本信息配置说明 参数 说明 名称 创建的编译构建任务名称,可自定义。 支持中英文,数字,下划线“_”和连接符“-”。 字符长度范围为1~115。 所属项目 创建的编译构建任务所属项目。 以项目入口方式访问访问编译构建服务时默认填写,无需手动填写。 以服务入口访问时需根据实际情况选择新建构建任务前准备工作中创建的项目。 代码源 选择实际需要编译的代码源。 Repo:从 代码托管服务 拉取代码进行构建。 其他项目Repo:从其他项目的代码托管中拉取代码进行构建,请选择已有的项目、该项目下已经创建的代码仓以及默认分支。 来自流水线:如果选择来自流水线,则只能通过流水线任务驱动执行,不能单独执行。 以下为非CodeArts的第三方代码仓库。 GitHub:拉取托管在GitHub上的代码进行构建。 通用Git:拉取托管在其他服务上的代码进行构建。 GitCode:拉取托管在GitCode仓库上的代码进行构建。 码云:拉取托管在码云上的代码进行构建。 Gerrit:拉取托管在Gerrit上的代码进行构建。 服务扩展点 可选参数。当“代码源”选择为第三方代码仓时需要配置,首次使用第三方代码仓,需新建服务扩展点。新建步骤可参考新建CodeArts服务扩展点。 代码仓 选择实际需要编译的代码仓。 默认分支 选择仓库默认分支。 描述 可选参数。根据实际场景对编译构建任务的描述。字符长度范围0~512。 CodeArts Build内置30+种构建模板,您可以根据实际需要选择构建模板,选择后单击“确定”,构建任务即可新建完成。 也可以选择“空白构建模板”,然后在配置构建任务时添加实际使用的构建步骤。 如果预置模板不满足使用要求,也可以自定义模板。 页面自动跳转到“构建步骤”页面,可继续配置构建任务。
  • 约束与限制 执行缓存清理操作前,请务必仔细阅读以下缓存清理风险以及注意事项: 由于缓存目录为同租户共享,频繁清理缓存会概率性导致同租户用户构建异常(常表现为“xxx文件不存在”),因此只可在缓存异常时清理,任务执行成功后务必再次编辑任务,删除清理命令,并且在执行清理缓存操作的同时,不要执行其他的使用缓存的编译构建任务。 出于安全考虑,缓存清理命令只可在对应构建步骤里执行,在其他步骤执行此命令会导致“目录不存在”或”清理无效”等报错。
  • 多任务构建 --- version: 2.0 #构建参数定义, 参数必须以name,value成对出现,不赋值默认为空字符串,引用方式为${申明的参数名称name} params: - name: machineArch value: X86 - name: jobCondition value: 1 - name: jobsCondition value: 1 # 构建环境配置,env和envs配置为非必填项,二选一。当用户需要使用条件判断确定使用的主机规格与类型时,选择配置envs env: resource: type: docker arch: X86 class: 8U16G pool: Mydocker envs: - condition: machineArch == 'ARM' resource: type: docker arch: ARM - condition: machineArch == 'X86' resource: type: docker arch: X86 # buildflow和buildflows配置二选一。当需要使用条件判断执行的jobs时,选择配置buildflows buildflow: strategy: Lazy jobs: - job: Job3 depends_on: - Job1 - Job2 build_ref: .cloudbuild/build3.yml - job: Job1 build_ref: .cloudbuild/build1.yml - job: Job2 build_ref: .cloudbuild/build2.yml buildflows: - condition: jobsCondition == 1 jobs: - job: Job1 build_ref: .cloudbuild/build1.yml params: - name: job1Params value: 1 - condition: jobCondition == 1 job: Job2 build_ref: .cloudbuild/build2.yml params: - name: job2Params value: 2 - job: Job3 depends_on: - Job1 - Job2 build_ref: .cloudbuild/build3.yml - condition: jobsCondition == 2 jobs: - job: Job3 build_ref: .cloudbuild/build3.yml 表2 多任务语法配置说明 参数 类型 说明 是否必填 version string YAML文件版本号配置项,用于指定YAML文件版本号。固定值,目前只支持2.0。 是 params map 全局参数配置项,参数必须以name和value成对出现,不赋值默认为空字符串,引用方式为${申明的参数名称name}。 示例中定义的参数,引用方式:作为参数输入时使用${machineArch},作为condition条件判断时使用申明的参数名称machineArch。 name:参数名称。 value:参数名称对应的参数值。 否 env map 构建环境配置项,与envs配置功能相同,两者配置其一即可,不支持条件语句condition。 resource:构建环境资源信息。 type:资源池类型,可输入参数值(docker或custom),docker表示使用默认执行机,custom表示使用自定义执行机,必填项。 arch:构建执行机架构,可输入参数值(X86或ARM),必填项。 class:构建执行机规格,可输入参数值(2U8G、4U8G、8U16G、16U32G、16U64G),当type=docker时该参数生效,默认为2U8G,其他规格需要单独购买对应规格的并发包才能正常使用,非必填。 pool:自定义资源池名称,当type=custom时该参数生效,非必填。 否 envs map 构建环境配置项,与env配置功能相同,两者配置其一即可,支持条件语句condition,可以更加灵活的根据不同场景使用同一个YAML文件。 condition:条件判断语句,符合当前条件判断的会使用对应resource配置的环境信息。 resource:构建环境资源信息。 type:资源池类型,可输入参数值(docker或custom),docker表示使用默认执行机, custom表示使用自定义执行机,必填项。 arch:构建执行机架构,可输入参数值(X86或ARM),必填项。 class:构建执行机规格,可输入参数值(2U8G、4U8G、8U16G、16U32G、16U64G),当type=docker时需要填写该参数,默认为2U8G,其他规格需要单独购买对应规格的并发包才能正常使用,非必填。 pool:自定义资源池名称,当type=custom时需要填写该参数,非必填。 否 buildflow map 在CodeArts Build中Build Job是构建的最小单元,适用于业务比较简单的场景,但是在有些复杂的构建场景下,Build Job可能并不能满足复杂的构建要求,比如多仓工程需要分布到多个机器上去构建,并且构建工程之间还存在一定的依赖关系,又或者希望将Build Job中的构建任务拆分成更加模块化,更加细粒度的构建任务,并按照依赖顺序进行构建。对于比较复杂的构建场景,可以使用BuildFlow将多个有依赖关系的Build Job按照有向无环图(DAG)的方式组装起来,CodeArts Build将会按照构建的依赖关系以最大的并发进行构建,提升构建效率。 strategy:定义buildFlow运行的策略,支持Lazy(构建时间相对较长,但是可以节省构建资源,在资源池资源不足时使用,优先触发优先级高的子任务构建)和Eager(构建时间相对较快,可能造成资源空闲等待,在资源池充足时推荐使用,同步触发所有任务),非必填,默认值Eager。 jobs:任务编排,定义子job之间的依赖关系,必填项。 job:子任务名称,必填项。 depends_on:是否依赖子任务,填写依赖子任务的job名称,当前job依赖于Job1和Job2,非必填。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),YAML文件是一个独立的可执行构建的完整文件,参考单任务构建代码示例,必填项。 job:子任务名称,必填项。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),必填项。 job:子任务名称,必填项。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),必填项。 是 buildflows map 当buildflow中需要做条件判断时使用buildflows,针对不同业务场景进行适配,更好的对YAML文件进行通用。 condition:条件判断语句,符合当前条件判断的会使用对应jobs配置,condition必须放在buildflows下面。 jobs:任务编排,定义子job之间的依赖关系,必填项。 job:子任务名称,必填项。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),YAML文件是一个独立的可执行构建的完整文件,参考单任务构建代码示例,必填项。 params:子任务定义的参数,作用域为子任务引用的YAML文件,可以在子任务使用的YAML文件中引用此处定义的参数,非必填。 name:参数名称。 value:参数名称对应的参数值。 condition:条件判断语句,符合当前条件判断的会使用对应job配置。 job:子任务名称,必填项。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),必填项。 params:子任务定义的参数,作用域为子任务引用的YAML文件,非必填。 name:参数名称。 value:参数名称对应的参数值。 job:子任务名称,必填项。 depends_on:是否依赖子任务,填写依赖子任务的job名称,当前job依赖于Job1和Job2,非必填。 build_ref:当前job构建使用的YAML文件路径(相对于仓库根目录),必填项。 是
  • 单任务构建代码示例 --- version: 2.0 #构建参数定义, 参数必须以name,value成对出现,不赋值默认为空字符串,引用方式为${申明的参数名称name} params: - name: machineArch value: X86 #构建环境配置,env和envs配置为非必填项,二选一。当用户需要使用条件判断确定使用的主机规格与类型时,选择配置envs env: resource: type: docker arch: X86 class: 8U16G pool: Mydocker envs: - condition: machineArch == 'ARM' resource: type: docker arch: ARM - condition: machineArch == 'X86' resource: type: docker arch: X86 #构建步骤 steps: PRE_BUILD: - checkout: name: checkout inputs: scm: codehub url: git@codehub.devcloud.cn-north-7.ulanqab.huawei.com:huang-test00001/maven.git branch: master commit: commitId lfs: true submodule: true depth: 100 tag: tag path: test - manifest_checkout: name: "manifest" inputs: manifest_url: https://codehub.devcloud.xxxxxxx.ulanqab.huawei.com/IPD-xxxxxx/manifest.git manifest_branch: master manifest_file: default.xml path: dir/dir02 lfs: true repo_url: https://codehub.devcloud.xxxxxxx.ulanqab.huawei.com/IPD-xxxxxx/git-repo.git repo_branch: master username: someone password: PASSWD - sh: inputs: command: echo ${machineArch} BUILD: # 构建步骤 - maven: name: Maven构建 image: cloudbuild@maven3.5.3-jdk8-open inputs: settings: public_repos: - https://mirrors.huawei.com/maven cache: true unit_test: coverage: true ignore_errors: false report_path: "**/TEST*.xml" enable: true coverage_report_path: "**/site/jacoco" command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B check: project_dir: ./ settings: ~/.m2/settings.xml param: '' - upload_artifact: inputs: path: "**/target/*.?ar" version: 2.1 name: packageName 表1 单任务语法配置说明 参数 类型 说明 是否必填 version string YAML文件版本号配置项,用于指定YAML文件版本号。固定值,目前只支持2.0。 是 params map 全局参数配置项,参数必须以name和value成对出现,不赋值默认为空字符串,引用方式为${申明的参数名称name}。 示例中定义的参数,引用方式:作为参数输入时使用${machineArch},作为condition条件判断时使用申明的参数名称machineArch。 name:参数名称。 value:参数名称对应的参数值。 否 env map 构建环境配置项,与envs配置功能相同,两者配置其一即可,不支持条件语句condition。使用示例可参考配置构建环境。 resource:构建环境资源信息。 type:资源池类型,可输入参数值(docker或custom),docker表示使用默认执行机,custom表示使用自定义执行机,必填项。 arch:构建执行机架构,可输入参数值(X86或ARM),必填项。 class:构建执行机规格,可输入参数值(2U8G、4U8G、8U16G、16U32G、16U64G),当type=docker时该参数生效,默认为2U8G,其他规格需要单独购买对应规格的并发包才能正常使用,非必填。 pool:自定义资源池名称,当type=custom时该参数生效,非必填。 否 envs map 构建环境配置项,与env配置功能相同,两者配置其一即可,支持条件语句condition,可以更加灵活的根据不同场景使用同一个YAML文件。 condition:条件判断语句,符合当前条件判断的会使用对应resource配置的环境信息。 resource:构建环境资源信息。 type:资源池类型,可输入参数值(docker或custom),docker表示使用默认执行机, custom表示使用自定义执行机,必填项。 arch:构建执行机架构,可输入参数值(X86或ARM),必填项。 class:构建执行机规格,可输入参数值(2U8G、4U8G、8U16G、16U32G、16U64G),当type=docker时需要填写该参数,默认为2U8G,其他规格需要单独购买对应规格的并发包才能正常使用,非必填。 pool:自定义资源池名称,当type=custom时需要填写该参数,非必填。 否 steps map 构建步骤执行配置项,配置构建流程,包括构建前准备,构建执行的具体任务。 PRE_BUILD:构建前准备工作配置项,一般用作于构建前的代码下载工作。 BUILD:构建任务配置项,用于执行业务相关的具体构建任务。 是 steps: PRE_BUILD map 构建前准备工作配置项,一般用作于构建前的代码下载工作,目前只支持checkout、manifest_checkout 和sh配置项,一般情况配置其中一种即可。 checkout:单代码仓下载。使用示例可参考代码化构建(单仓下载)。 name:构建步骤名称,支持自定义名称,非必填,默认值“代码检出”。 inputs:步骤输入参数,每个步骤的输入参数不同,详见具体构建步骤说明,必填项。 scm:代码源,当前只支持codehub,非必填,默认值codehub。 url:拉取代码的ssh地址或者https地址。codehub拉取代码时为ssh,其他代码源为https,必填项。 branch:拉取的代码分支名,必填项。 commit:commitId构建时拉取的commitId,非必填。 lfs: 是否开启git lfs,非必填,默认值false。 submodule:是否拉取子模块,非必填,默认值false。 depth:浅克隆深度。选择commitId构建时,depth必须大于等于commitId所在深度,非必填,默认值1。 tag:tag构建时拉取的tag名,如果commit和tag同时存在,优先执行commit构建,非必填。 path:clone的子路径,代码将会下载到子目录下面,非必填。 manifest_checkout: 多代码仓下载。使用示例可参考代码化构建(manifest多仓下载)。 name:构建步骤名称,支持自定义名称,非必填,默认值“manifest_checkout”。 inputs:步骤输入参数,每个步骤的输入参数不一样,详见具体构建步骤说明,必填项。 manifest_url:指定manifest仓地址,包含xml文件的仓库,必填项。 manifest_branch:指定manifest分支或revision,非必填,默认值HEAD。 manifest_file:manifest文件路径,定义的多仓库必须为同一种源码源,非必填,默认值default.xml。 path:自定义manifest所有子仓下载路径,为工作目录的相对路径路径,不能以“/”开头,不能包含“.”,非必填,默认值为当前工作目录。 lfs:是否开启git lfs,非必填,默认值false。 repo_url:repo仓库地址,非必填。 repo_branch:repo仓库分支,非必填,默认值stable。 username:下载仓库时使用的用户名,下载非公开仓库时需填写,非必填。 password:下载仓库时使用的密码,下载非公开仓库时需填写,非必填。 sh:执行shell命令。 inputs:步骤输入参数,每个步骤的输入参数不一样,详见具体构建步骤说明,必填项。 command:执行shell命令,当checkout或manifest_checkout无法满足业务诉求时,可以自定义编写shell命令进行构建前的准备工作,必填项。 是 steps: BUILD map 构建任务配置项,用于执行业务相关的具体构建任务,只支持特定构建步骤,构建步骤根据业务实际情况进行自由组合,具体构建步骤参考选择构建步骤。 maven:Maven构建步骤定义。 name:构建步骤名称,支持自定义名称,非必填,默认值“Maven构建”。 image:构建使用的容器镜像,支持自定义和默认镜像,默认镜像名称为“cloudbuild@”加上工具版本名称,工具版本名称可以参考构建工具版本,必填项。 inputs:步骤输入参数,每个步骤的输入参数不一样,详见具体构建步骤说明,必填项。 settings:maven构建的settings配置,非必填。 public_repos:指定依赖包下载仓库地址。 cache:是否开启缓存,非必填,默认值false。 unit_test:单元测试,非必填。 coverage:是否处理覆盖率数据,非必填,默认值false。 ignore_errors:是否忽略单元测试错误,非必填,默认值true。 report_path:单元测试数据路径,必填项。 enable:是否处理单元测试数据,非必填,默认值true。 coverage_report_path:覆盖率数据路径,非必填。 command:执行构建命令,必填项。 check:检查配置,非必填。 project_dir:工程路径,必填项。 settings:maven构建的settings路径,非必填。 param:maven参数,非必填。 upload_artifact:上传二进制包至artifact仓库构建步骤定义。 inputs:步骤输入参数,每个步骤的输入参数不一样,详见具体构建步骤说明,必填项。 path:上传文件的路径及名称,支持通配符,必填项。 version:版本名称,非必填,默认值以构建编号命名。 name:文件名,非必填,默认值以文件原始名命名。 是
  • 代码化构建 参考配置构建环境的“代码化构建”部分的代码示例,在创建代码化构建使用的YAML文件中的“env”部分配置构建任务的运行环境。 参考配置代码下载的“代码化构建”部分的代码示例,在创建代码化构建使用的YAML文件中的“PRE_BUILD”部分配置代码下载方式。 参考配置构建步骤中各个构建步骤的“代码化构建”部分的代码示例,在创建代码化构建使用的YAML文件中的“BUILD”部分配置构建步骤。
  • 配置示例2:产物分类模式 在分支C编写BuildFlow配置中build_ref指定的accelerate.yml,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 version: 2.0 params: - name: TB_RSYNC value: ${WORKSPACE}/AOSP/:out/target/product/generic_x86_64 steps: PRE_BUILD: - checkout: name: "checkout" inputs: scm: "codehub" url: "git@codehub.devcloud.example.example.com:example.git" branch: "master" lfs: false submodule: false BUILD: - tbuild_execute: inputs: image: "swr.example.example.com/buildimage:AOSP" command: "cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh"
  • params参数项详解 params配置项指定了一些使用AOSP构建加速必配的参数,参数说明如下: 参数项 是否必填 说明 示例 TB_RSYNC 是 需要同步的产物文件目录,“:”前为根目录,“:”后为若干个以“,”分隔的子目录,子目录前带“!”代表此目录不同步,不带“!”代表此目录的所有文件会被同步,带“!”的优先级更高。在AOSP构建场景下,需要拼接为“${WORKSPACE}/实际目录”。 "${WORKSPACE}/AOSP/:out/target/product/generic_x86_64,\!out/target/product/generic_x86_64/obj,\!out/target/product/generic_x86_64/symbols,\!out/target/product/generic_x86_64/obj_x86,\!out/target/product/generic_x86_64/obj_arm,\!out/target/product/generic_x86_64/gen" TB_GET_ORI_TRACE 配置示例1:依赖解析模式必填 依赖解析模式下获取当前工程的依赖json文件开关。 1:开启。 0:关闭(默认)。 1 TB_BUILDTRACE_ALL 配置示例1:依赖解析模式必填 依赖解析模式开关,不设置时默认使用配置示例2:产物分类模式。 1:开启。 不设置:关闭(默认)。 非“1”的其他字符串:开启,字符串视为json文件的自定义路径和名字。 AOSP/aosp.json
  • steps参数项详解 steps配置项定义了构建过程,示例中包含如下两个步骤:PRE_BUILD(构建前准备)和BUILD(编译构建)。 PRE_BUILD 此阶段主要做代码下载,参数解释如下: 1 2 3 4 5 6 7 8 9 PRE_BUILD: - checkout: # 代码下载步骤 name: "代码下载" # 步骤名称,可自定义 inputs: # 步骤参数 scm: "codehub " # 代码来源:只支持Repo url: "git@codehub.devcloud.example.example.com:test/python3.git" # 拉取代码的ssh地址。 branch: "master" # 拉取的代码分支。 lfs: false # 选择是否开启Git LFS,false关闭、true开启。构建默认不拉取音视频、图像等大型文件,开启Git LFS后,构建将会全量拉取文件。 submodule: false # false关闭、true开启。开启该功能,系统在构建时会自动拉取子模块仓库的代码。 BUILD 此阶段主要定义了download_artifact插件、tbuild_execute插件和upload_artifact插件,参数解释如下: 1 2 3 4 5 6 7 8 9 10 11 12 BUILD: - tbuild_execute: # AOSP加速场景下固定配置,定义tbuild_execute插件 inputs: # 固定配置 image: "swr.xx-xx-x.myxxcloud.com/buildimage:AOSP" # 构建使用的镜像,参考加速前准备章节制作docker镜像。 command: "mv /example/TB1.json AOSP/TB1.json && cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" # command为构建使用的命令,此处将构建分解为两个段落,准备和执行 # mv /example/TB1.json AOSP/TB1.json 是依赖解析模式独有的准备步骤,文件名字固定,如果工程中存在多个ninja构建,则文件的下标依次增加,例如TBTrace_droid_2.json和TB2.json,以此类推。 # 准备阶段:在代码仓根目录新建build.sh,内容见build.sh样例 # 构建阶段:依照加速级别调用加速命令(BuildAccelerateL1 BuildAccelerateL3)的AOSP模式(-AOSP)直接执行构建,此处样例取值BuildAccelerateL3 -AOSP # 后处理阶段:以实际工程需要为准,该示例仅使用post_build.sh # 依赖解析模式实际命令最终拼接为"mv /example/TB1.json AOSP/TB1.json && cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" # 产物分类模式实际命令最终拼接为"cd AOSP && chmod a+x build.sh && BuildAccelerateL3 -AOSP ./build.sh && ./post_build.sh" build.sh样例: 1 2 3 source build/envsetup.sh lunch aosp_x86_64-eng make -j64
  • 高级选项 高级选项均为非必填选项,在构建过程中有工程无法执行需要特殊适配或优化性能时配置,若随意配置可能会导致构建失败。 表1 通用选项 参数项 说明 示例 TB_GET_TRACE 构建结束后获取依赖json文件文件的开关。 1:开启。 0:关闭(默认)。 1 TB_NINJA_RULE_ALL 用于产物分类模式自定义Target切割及分发,使用逗号分隔需要切割至不同分组的编译产物类别,使用冒号分隔需要切割至同一分组的编译产物类别。使用星号分隔多个ninja工程的配置。不设置时会自动配置合适值。 nonSystem:fonts:media:usr:system_ext,bin_other1:bin:bin_other2:lib:lib64,apex:system_ext_apex:apex_1:system_ext_apex_1:fake_packages:packaging_script,framework:priv-app:priv-app2:priv-app3:app,host,apex_0:system_ext_apex_0,apex_2:system_ext_apex_2:vendor,product:etc*nonSystem TB_TARGETS_LIST_ALL 人工指定分发的target进行编译,每个逗号隔开不同worker的target,每个空格隔开同一个worker的不同target。使用星号分隔多个ninja工程的配置。不设置时会自动配置合适值。 "nonSystem_target,framework_target,lib_target*lib_target" TB_HOOK_LOCK 对软链接也进行文件同步。若构建过程中发生软链接文件未同步导致的报错,需要开启此选项。 1:开启。 0:关闭(默认)。 1 TB_APPEND_PATH 构建时可向PATH环境变量中追加的参数。 1:开启。 0:关闭(默认)。 1 TB_SHUT_DOWN_SAME_TIME 所有worker都等待主节点执行完毕后再结束构建释放资源。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_LOCK 构建加速的同时worker向构建执行机实时传输文件。开启后效率会进一步提升,但会存在概率性编译失败的情况。 1:开启。 0:关闭(默认)。 1 TB_MAKE_J 设置构建并发数。默认为worker核数。 16 TB_REFER_NINJA_FILE 如果存在串行执行一个一模一样的ninja工程时,可以使用此变量优化构建速度 1:开启。 0:关闭(默认)。 1 CCACHE_DIR 自定义编译缓存的本地目录。默认为/tmp/xcache目录。 ${WORKSPACE}/TBcache TB_CACHE_SIZE 使用自定义执行机时自定义编译缓存的本地目录存储大小上限。默认为100G。 100G CCACHE_MAXSIZE 自定义编译缓存的本地目录存储大小上限。默认为20G。 100G TB_ONE_WORKER 使用自定义执行机且只使用一个worker进行构建时可以使用此变量打开编译缓存开关。 1:开启。 0:关闭(默认)。 1 NT 该变量在主节点client自动设置,可以通过比较此变量是否等于1判断该节点是否为主节点client。 不需要配置。 TB_NET_INTERFACE_NAME 指定获取IP时读取的网卡名,在多网卡情况下获取IP使用,默认为空,多个网卡名通过逗号分隔,配置在前的网卡名有更高的优先级。 eth0,eth1 TB_ACC_PREPARE 使用自定义执行机时必须配置此变量。 false TB_OUTPUT_PATH 自定义产物目录路径,默认设置为out。 output TB_SELF_ENV worker编译target时使用本地环境变量,不使用client传递的变量。 1:开启。 0:关闭(默认)。 1 TB_RSYNC_FLAG 增加同步文件时rsync命令的参数。 --ignore-existing -a TBUILD_PLUGIN_PKG_TYPE 指定使用的TBuild版本为snapshot版本还是release版本。不设置时默认使用最新的release版本。 release TBUILD_PLUGIN_PKG_VERSION 指定使用的TBuild版本号。不设置时默认使用最新的release版本。 1.0.1 表2 依赖解析模式 参数项 说明 示例 TB_CPU_NUM 分发任务时,所有机器都以此值计算可分配任务量。默认为空。 16 TB_LOCAL_CONTAIN_PATTERN 根据关键字指定必须分发在client编译的target,此target生成的产物不需要文件传输回主节点。默认为空。 file_contexts.bin,com.android.vndk.current.,out/soong/host/linux-x86/bin/fileslist TB_LOCAL_NOT_CONTAIN_PATTERN 根据关键字指定必须不分发在client编译的target。默认为空。 Bluetooth.so TB_CAPACITY_ALL 单台机器可分配的任务权值上限,单位是分钟,以json文件的时间为参考,此时间为单纯的构建时间,不包括cpu空闲时间,实际构建时间会大于此值。可以指定为小数。超过此上限的target会分发至client,在所有agent编译完成后在本地最后编译。不设置时会根据json文件自动设置。 5.5 TB_TASK_SIZE_ALL 人工指定分割多少份target,可以大于机器数量,建议设置的值略大于机器数量,不建议少于机器数量,会导致机器浪费。不设置时会根据机器数量自动设置。 8 表3 ninja文件缓存选项 参数项 说明 示例 TB_CACHE_SERVER_IP ninja文件缓存开关,和TB_CACHE_ARCHIVE_PATH同时设置时缓存才会开启。 非空值:开启,如果开启了远端缓存,该值视为远端服务器IP。 空值:关闭(默认)。 172.example.example.example TB_CACHE_ARCHIVE_PATH ninja文件缓存本地归档目录,和TB_CACHE_SERVER_IP同时设置时缓存才会开启。 AOSP/ninja_cache TB_CACHE_RECACHE 本次构建会重新生成ninja文件缓存,不会命中历史缓存。 1:开启。 0:关闭(默认)。 1 TB_CACHE_REMOTE ninja文件缓存远端开关,命中时从远端获取缓存,生成缓存时也会归档至远端。 1:开启。 0:关闭(默认)。 1 TB_CACHE_LOCAL ninja文件缓存本地开关,命中时从本地获取缓存,优先级高于远端缓存,生成缓存时也会归档至本地。 1:开启(默认)。 0:关闭。 1 TB_CACHE_DEPENDS 增加指定的文件作为缓存命中的依赖文件,如果该文件产生变化,会使缓存不命中。默认为空。多个文件使用逗号分隔。 build.sh,test.sh TB_CACHE_VERSION 为缓存增加指定的版本号,如果版本号产生变化,会使缓存不命中。默认为空。 1.0 TB_CACHE_EXCLUDE_KEY 缓存时过滤掉带关键字的文件,多个关键字用逗号分隔,默认设置为“.glob”,可以用空字符串重置。 .so,.glob TB_NINJA_FILE_CACHE 设置被缓存的目录,多个目录使用逗号分隔,默认设置为“out”。 out,test TB_CACHE_NINJA_CACHE_SIZE ninja文件缓存本地归档目录空间上限,超过此上限会根据算法自动清理历史缓存。默认设置为50,单位是G。 100 TB_SKIP_TARGET 归档ninja文件缓存时跳过此target,即使命中ninja文件缓存此target也会重新编译。 update-api
  • 约束与限制 增量编译技术需结合L3级别加速使用。 使用AOSP构建加速能力需要购买配套构建加速包,购买方法请参考购买增值特性。 该功能目前仅支持“华北-北京四”区域、代码源为CodeArts Repo的C/C++语言构建工程的编译构建加速。 本章节配置仅支持L1、L3级别的加速。 构建过程中不允许直接覆盖LD_LIBRARY_PATH和LD_PRELOAD环境变量,建议通过追加的方式使用,例如: 1 "export LD_LIBRARY_PATH=new_path:${LD_LIBRARY_PATH}"
  • 加速前准备 在一般的构建工程中,其构建过程大致分为构建前准备(工具链、代码仓)、构建依赖件准备(ninja文件生成)、编译构建、构建后操作(打包、检查等)。其中,构建加速介入编译构建阶段,对此前的构建过程中生成的构建依赖件进行解析,并执行编译。 在配置构建加速前,需如下准备: 找到构建依赖件准备的节点,以AOSP为例,一个形态的编译命令如下: 1 2 3 source build/envsetup.sh lunch aosp_x86_64-eng make -j64 准备好构建使用的docker镜像,基于该docker镜像制作新镜像:在dockerfile中增加“/opt/buildtools”目录供加速工具部署,并确保构建用户对“/opt/buildtools”目录有权限写入。参考命令如下: 1 RUN mkdir -p /opt/buildtools && chmod -R 777 /opt/buildtools
  • 通过BuildFlow组织加速构建 构建加速需要结合多任务代码化构建使用,可参考多任务YAML文件结构详解中的部分配置。 BuildFlow配置方法如下样例: 1 2 3 4 5 6 7 buildflow: jobs_resolver: # 必配 provider: tbuild_jobs_resolver # 必配,固定值 jobs: # 需要进行编排的任务集 - job: distribute_job # 构建任务名称 build_ref: accelerate.yml # 指定构建加速脚本,脚本名称可自定义 worker: 2 # 指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速 参数说明如下: jobs_resolver:buildflow的子节点,必配。 provider:此处使用的provider为jobs_resolver的高级选项,意为指定job对应的任务解析器,取值固定为tbuild_jobs_resolver。 jobs:需要进行编排的任务集,此处的jobs作为jobs_resolver的子节点,与普通构建场景buildflow下的jobs子节点有所区别,配置时请注意缩进。 job:构建任务名称,可自定义。 build_ref:该构建任务在构建过程中需要运行的加速构建脚本。 worker:指定为16vCPU的倍数,例如2就代表使用了32vCPU进行加速。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全