编译构建 CodeArts Build
编译构建 CodeArts Build
- 最新动态
- 功能总览
- 产品介绍
- 快速入门
-
用户指南
- 编译构建服务(CodeArts Build)使用流程
- 开通CodeArts Build
- 配置CodeArts Build项目级角色权限
- 新建构建任务
-
配置构建任务
- 构建任务基础配置
- 选择构建步骤
-
配置构建步骤
- 使用Maven构建
- 使用Android构建
- 使用Npm构建
- 使用Gradle构建
- 使用Yarn构建
- 使用gulp构建
- 使用Grunt构建
- 使用mono构建
- 使用PHP构建
- 使用SetupTool构建
- 使用PyInstaller构建
- 使用shell命令构建
- 使用Gnu-arm构建
- 使用CMake构建
- 使用Ant构建
- 使用Kotlin构建
- 使用Go语言构建
- 使用Ionic Android App构建
- 构建Android快应用
- 使用Sbt构建
- 使用Grails构建
- 使用Bazel构建
- 使用Flutter构建
- 使用HarmonyOS构建
- 通过Docker命令操作镜像
- 生成单元测试报告
- 自定义构建环境
- 使用自定义环境构建
- 下载软件发布库中的软件包
- 上传软件包到软件发布库
- 上传文件到OBS
- 配置构建任务参数
- 配置构建任务执行计划
- 配置构建任务角色权限
- 配置构建任务事件通知
- 执行构建任务
- 查看构建任务
- 管理构建任务
- 查询审计日志
- 参考
- 旧版手册页面
-
最佳实践
- 基于Maven构建产物制作Docker镜像并发布到镜像仓(内置执行机/图形化构建)
- 使用Maven构建上传软件包至私有依赖库(内置执行机/图形化构建)
- 使用Maven构建实现私有依赖包的上传及下载引用(内置执行机/图形化构建)
- 使用NPM构建上传软件包至软件发布库(内置执行机/图形化构建)
- 使用自定义执行机执行Maven构建(自定义执行机/图形化构建)
- 使用Maven构建上传软件包和推送镜像到SWR(内置执行机/代码化构建)
- 使用Maven构建执行多任务构建工程(内置执行机/代码化构建)
- 基于私有依赖库使用Maven构建并上传软件包(内置执行机/图形化构建)
- 使用自定义构建环境执行构建任务(内置执行机/图形化构建)
- API参考
-
常见问题
- 通用构建问题
- Maven构建
- Android构建
- Gradle构建
-
Npm构建
- 执行Npm构建时,报错提示JavaScript heap out of memory
- 执行Npm构建时,报错提示enoent ENOENT: no such file or directory
- 执行Npm构建时,报错提示Module not found: Error: Can't resolve ...
- 执行Npm构建失败,但不显示错误日志
- 执行Npm构建时,报错提示npm cb() never called
- 执行Npm构建时,报错提示gyp ERR! stack Error: EACCES: permission denied
- 执行Npm构建时,报错提示eslint: error 'CLODOP' is not defined
- 执行Npm构建时,报错提示node-sass下载失败
- 执行Npm构建时,报错提示error: could not write config file
- Npm构建耗时且安装依赖缓慢
- 执行Npm构建时,报错提示找不到依赖版本
- 镜像问题
- 视频帮助
- 通用参考
链接复制成功!
使用Maven构建执行多任务构建工程(内置执行机/代码化构建)
应用场景
在编译构建中,构建任务是构建的最小单元,适用于业务比较简单的场景,但是在有些复杂的构建场景下,构建任务可能并不能满足复杂的构建要求。例如,用户希望更模块化、更加细粒度的拆分构建任务,并按照构建任务之间的依赖顺序进行构建。
为此,编译构建服务支持使用BuildFlow将多个存在依赖关系的构建任务按照有向无环图(DAG)的方式组装起来,BuildFlow将会按照构建的依赖关系并发进行构建。
本实践为您演示构建任务Job3依赖于构建任务Job1和构建任务Job2的构建工程,实践中依赖使用代码托管服务,用于存储实践中项目所使用的代码。
约束限制
- 使用BuildFlow构建仅支持使用CodeArts Repo中的代码。
- 需已具备CodeArts Repo服务的操作权限。
操作流程
流程 |
说明 |
---|---|
为本实践新建项目。 |
|
为本实践新建Repo代码仓用于存储代码文件。 |
|
通过“build.yml”定义整个构建的流程。 |
|
新建整个构建过程中依赖的构建任务的执行脚本。 |
|
新建BuildFlow编译构建任务并执行。 |
|
查看编译构建结果。 |
新建项目
- 使用华为云账号登录华为云控制台页面。
- 单击页面左上角
,在服务列表中选择“开发与运维 > 软件开发生产线 CodeArts”。
- 单击“立即使用”,进入CodeArts服务首页。
- 在首页单击“新建项目”,选用“Scrum”项目模板。
- 项目名称填写“build-bestpractice”,其他保持默认即可。
- 单击“确定”后,进入到“build-bestpractice”项目下。
新建CodeArts Repo代码仓
- 在页面导航栏选择“代码 > 代码托管”。
- 单击“新建仓库”,选择“模板仓库”,单击“下一步”。
- 选择“Java Maven Demo”模板,单击“下一步”。
- 填写代码仓库名称为“Repo01”,其他参数保持默认即可。
- 单击“确定”。
新建build.yml文件
- 在代码仓详情页,选择“新建 > 新建目录”。
- 目录名称填写“.cloudbuild”,描述信息自定义即可,单击“确定”。
- 在“.cloudbuild”目录下,选择“新建 > 新建文件”,文件名命名为“build.yml”,文件中代码内容如下。
version: 2.0 # 必须是2.0,该版本号必填且唯一 params: # 构建参数,可在构建过程中引用 - name: condition_param value: 1 # envs配置为非必填项。 envs: - condition: condition_param == 0 # 主机规格与类型的判断条件,不满足条件则不使用以下主机规格与类型 resource: type: docker arch: ARM - condition: condition_param == 1 # 主机规格与类型的判断条件,满足条件会使用以下主机规格与类型 resource: type: docker arch: X86 buildflow: jobs: # 构建任务 - job: Job3 # 子任务的名称,可自定义 depends_on: # 定义job的依赖,此处表示Job3依赖Job1和Job2 - Job1 - Job2 build_ref: .cloudbuild/build_job3.yml # 定义Job3在构建过程中需要运行的yaml构建脚本 - job: Job1 build_ref: .cloudbuild/build_job1.yml # 定义Job1在构建过程中需要运行的yaml构建脚本 - job: Job2 build_ref: .cloudbuild/build_job2.yml # 定义Job2在构建过程中需要运行的yaml构建脚本
“build.yml”定义了整个构建的流程,当前定义了3个构建任务,Job3依赖于Job1和Job2,即构建优先级Job1、Job2 > Job3,且Job1和Job2优先级相同会同步触发。“build_ref”定义了构建子任务所需运行的构建脚本。
新建build.yml中使用的子任务执行脚本
- 在“.cloudbuild”目录下,选择“新建 > 新建文件”,文件名命名为“build_job1.yml”,文件中代码示例如下。
version: 2.0 steps: BUILD: - maven: image: cloudbuild@maven3.5.3-jdk8-open # 使用的构建镜像,用户可以自定义镜像 inputs: settings: public_repos: - https://mirrors.huawei.com/maven # 配置依赖仓 cache: true # 是否开启缓存 command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B # 执行命令
- 参考1新建“build_job2.yml”和“build_job3.yml”,代码示例保持一致即可。
- 文件新建完成后,代码仓文件目录如下图所示。
图1 文件目录
新建并执行编译构建任务
- 在页面导航中选择“持续交付 > 编译构建”。
- 单击“新建任务”,根据表2填写参数信息。
表2 基本信息配置 参数
说明
任务名称
自定义任务名称,例如:BuildFlow。
代码源
选择“Repo”。
代码仓
选择新建CodeArts Repo代码仓中新建的代码仓库名称“Repo01”。
默认分支
保持默认“master”即可。
任务描述
对该构建任务的描述。
- 单击“下一步”,选择“Maven”模板。单击“确定”,进入构建步骤配置页面。
- 单击“代码化”页签,会自动加载“Repo01”代码仓中的构建运行脚本。
- 单击“保存并执行”,在弹出的窗口中单击“确定”即可跳转到构建任务运行页面。