- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 编译构建服务(CodeArts Build)使用流程
- 购买并授权使用CodeArts Build
- 配置CodeArts Build项目级角色权限
- 新建构建任务
-
配置构建任务
- 构建任务基础配置
- 选择构建步骤
-
配置构建步骤
- 使用Maven构建
- 使用Android构建
- 使用Npm构建
- 使用Gradle构建
- 使用Yarn构建
- 使用gulp构建
- 使用Grunt构建
- 使用mono构建
- 使用PHP构建
- 使用SetupTool构建
- 使用PyInstaller构建
- 使用shell命令构建
- 使用Gnu-arm构建
- 使用Msbuild构建
- 使用CMake构建
- 使用Ant构建
- 使用Kotlin构建
- 使用Go语言构建
- 使用Ionic Android App构建
- 构建Android快应用
- 使用GFortran构建
- 使用Sbt构建
- 使用Grails构建
- 使用Bazel构建
- 使用Flutter构建
- 使用HarmonyOS构建
- 使用构建方舟编译器构建
- 通过Docker命令操作镜像
- 生成单元测试报告
- 自定义构建环境
- 使用自定义环境构建
- 下载软件发布库中的软件包
- 上传软件包到软件发布库
- 上传文件到OBS
- 配置构建任务参数
- 配置构建任务执行计划
- 配置构建任务角色权限
- 配置构建任务事件通知
- 执行构建任务
- 查看构建任务
- 加速构建任务
- 管理构建任务
- 查询审计日志
- 参考
- 旧版手册页面
-
最佳实践
- CodeArts Build最佳实践汇总
- 基于Maven构建产物制作Docker镜像并发布到镜像仓(内置执行机/图形化构建)
- 使用Maven构建上传软件包至私有依赖库(内置执行机/图形化构建)
- 使用Maven构建实现私有依赖包的上传及下载引用(内置执行机/图形化构建)
- 使用NPM构建上传软件包至软件发布库(内置执行机/图形化构建)
- 使用自定义执行机执行Maven构建(自定义执行机/图形化构建)
- 使用Maven构建上传软件包和推送镜像到SWR(内置执行机/代码化构建)
- 使用Maven构建执行多任务构建工程(内置执行机/代码化构建)
- 基于私有依赖库使用Maven构建并上传软件包(内置执行机/图形化构建)
- 使用自定义构建环境执行构建任务(内置执行机/图形化构建)
- 对C/C++构建工程进行构建加速(内置执行机/图形化构建)
- 使用Windows自定义执行机执行Maven构建(自定义执行机/图形化构建)
- HE2E DevOps实践:构建应用部分
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
任务相关API接口
- 根据开始时间和结束时间查看构建任务的构建历史列表
- 查看构建任务的构建历史列表
- KeyStore文件下载
- 查看任务运行状态
- 查看项目下用户的构建任务列表
- 执行构建任务
- 查询指定代码仓库最近一次成功的构建历史
- 获取构建历史详情信息接口
- 根据开始时间和结束时间查看构建任务的构建成功率
- 下载全量构建日志
- 下载构建步骤日志
- 获取构建记录信息
- 获取构建产物详情信息
- 停止构建任务v3
- 停止构建任务v1
- 删除构建任务
- 禁用构建任务
- 恢复构建任务
- 创建构建任务
- 更新构建任务
- 查询构建模板
- 创建构建模板
- 删除构建模板
- 查询通知
- 更新通知
- 取消通知
- 获取构建任务详情
- 下载构建实时日志
- 获取任务构建记录列表
- 获取任务构建记录列表v1
- 查内置执行机规格
- 获取构建任务的角色权限矩阵信息
- 是否已开启内网安全访问
- 获取用户权限
- 获取任务权限矩阵
- 当前用户所在项目所属租户的包周期每月时长是否超额
- 查看用户全部的构建任务列表
- 获取构建记录的构建脚本
- 查看项目下任务名是否存在
- 获取单元测试覆盖率报告列表
- 查询当前租户(计费)类型
- 查询账号是否联邦账号
- 禁用任务
- 查询构建成功率
- 获取单元测试覆盖率报告压缩包
- 查看构建任务构建信息
- 获取通知信息
- 查询租户状态
- 查看任务是否在构建
- 获取覆盖率接口
- 获取任务各阶段信息
- 获取指定工程的简要构建信息
- 构建历史页获取构建次数
- 保存模板使用记录
- 洞察构建时长
- 配置文件权限
- 添加文件权限
- 文件管理文件下载
- 删除文件管理文件
- 删除任务
- 编辑页获取参数类型的接口
- 获取当前用户的项目信息列表
- 查询租户下文件列表
- 获取编译构建默认参数
- 查询用户可使用文件
- 获取项目列表
- 获取指定工程的构建记录列表
- 查询指定构建记录详情
- 查询任务是否已禁用
- 查询官方模板
- 获取构建任务配置的对比差异
- 设置回收站中的任务保留时间
- 查看回收站中删除的构建任务列表
- 删除回收站中的任务
- 清空回收站中的任务
- 恢复回收站中的任务
- 更新文件信息
- 上传文件
- 检查webhook地址参数
- 获取dockerfileTemplate
- 获取镜像模板列表
- 获取当前项目默认角色权限矩阵信息
- 获取修改历史
- 复制任务名
- 获取该任务所有分支信息
- 查看系统预定义参数
- 查看仓库
- 获取租户任务总数和成功率接口
- 获取套餐资源id,影响临期,超期提示
- 获取套餐临期信息
- 检查任务数量是否上限
- 获取代码化构建默认模板
- 获取官方推荐模板
- 执行构建
- 创建构建任务
- 更新构建任务
- 复制构建任务
- 查询项目任务列表
- 根据条件查询特定模板
- 创建构建模板
- 删除构建模板
- 获取构建记录信息
- 获取构建任务详情
- 查询任务状态
- 流水线查看构建任务信息
- 文件管理删除权限
- 文件管理查询权限
- 获取任务构建记录列表
- 详情页获取构建参数
- 获取构建记录的有向无环图
- 应用示例
- 附录
- 历史API接口(待下线)
- 修订记录
- 场景代码示例
-
常见问题
- 通用构建问题
-
Maven构建
- 执行Maven构建时,提示未开通私有依赖仓
- 执行Maven构建时,提示license信息检查不通过
- 使用maven deploy命令上传包失败
- 执行Maven构建时,提示找不到pom文件
- 执行Maven构建时,提示找不到package/symbol
- 使用exec-maven-plugin插件实现Maven和npm混合编译
- 执行Maven构建时,多个子项目和父项目之间引用报错
- 如何配置及清理Maven构建缓存
- 如何查找Maven构建中正确的构建包路径
- 如何使用jib-maven-plugin插件构建Maven工程制作镜像
- 使用Maven构建时,代码更新后构建出来的包还是旧的
- 使用Maven构建时,Maven组件下载缓慢
- Android构建
- Gradle构建
- Msbuild构建
-
Npm构建
- 执行Npm构建时,报错提示JavaScript heap out of memory
- 执行Npm构建时,报错提示Unexpected end of JSON ...
- 执行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构建时,报错提示找不到依赖版本
- 镜像问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
HE2E DevOps实践:构建应用部分
本文以“DevOps全流程示例项目”为例,介绍如何在项目中配置构建任务,以及通过代码变更触发自动构建来实现持续集成。
开展实践前,需要完成代码检查。
预置任务简介
样例项目中预置了以下5个构建任务。
预置任务 |
任务说明 |
---|---|
phoenix-sample-ci |
基本的构建任务。 |
phoenix-sample-ci-test |
构建测试环境可用镜像的任务。 |
phoenix-sample-ci-worker |
构建Worker功能镜像的任务。 |
phoenix-sample-ci-result |
构建Result功能镜像的任务。 |
phoenix-sample-ci-vote |
构建Vote功能镜像的任务。 |
本章节以任务“phoenix-sample-ci”为例进行讲解,此任务包含的步骤如下。
构建步骤 |
说明 |
---|---|
制作Vote镜像并推送到SWR仓库 |
依据代码仓库中的“vote/Dockerfile”文件制作Vote功能镜像,并将镜像推送到容器镜像服务。 |
制作Result镜像并推送到SWR仓库 |
依据代码仓库中的“result/Dockerfile”文件制作并推送Result功能镜像,并将镜像推送到容器镜像服务。 |
使用Maven安装Worker依赖包 |
使用Maven安装Worker功能所需的依赖。 |
制作Worker镜像并推送到SWR仓库 |
依据代码仓库中的“worker/Dockerfile”文件制作并推送Worker功能镜像,并将镜像推送到容器镜像服务。 |
生成Postgres and Redis Dockerfile |
通过shell命令生成Dockerfile文件,用以制作Postgres(数据库)和Redis(缓存)镜像。 |
制作Postgres镜像并推送到SWR仓库 |
依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Postgres镜像,并将镜像推送到容器镜像服务。 |
制作Redis镜像并推送到SWR仓库 |
依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Redis镜像,并将镜像推送到容器镜像服务。 |
替换Docker-Compose部署文件镜像版本 |
为了将镜像部署到ECS时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。
|
替换Kubernetes部署文件镜像版本 |
为了将镜像部署到CCE时,能够可以拉取到正确的镜像,使用shell命令进行完成以下操作。
|
上传Kubernetes部署文件到软件发布库 |
将“替换Kubernetes部署文件镜像版本”步骤中修改后的所有“.yaml”文件上传到软件发布库中归档。 |
上传docker-compose部署文件到软件发布库 |
将“替换Docker-Compose部署文件镜像版本”步骤中压缩好的“docker-stack.tar.gz”上传到软件发布库中归档。 |
配置SWR服务
本文档使用SWR来保存环境镜像,在执行任务前需要获取SWR登录指令、创建组织。
- 在CodeArts中单击导航“控制台”。在控制台单击左上角
搜索并进入SWR服务。
请检查页面左上方的“区域”列表,请确保与编译构建任务所在区域相同。如果区域不同,请选择相同区域。
- 单击“登录指令”,页面弹框显示登录指令。
其中,
- “-u”之后的字符串为用户名。
- “-p”之后的字符串为密码。
- 最后的字符串为SWR服务器地址,此地址即为后续配置并执行任务中的参数“dockerServer”。
图1 登录指令 - 单击“创建组织”,在弹框中输入组织名称“phoenix”(如果页面提示“组织已存在”,请自定义其它名称),单击“确定”。
这里的组织名称,即为后续配置并执行任务中的参数“dockerOrg”。
配置并执行任务
- 配置任务。
- 进入“凤凰商城”项目,单击导航“持续交付 > 编译构建”。页面中显示样例项目内置的任务。
- 在列表中找到任务“phoenix-sample-ci”。单击图标
,选择“编辑”。
- 选择“参数设置”页签,参照表3编辑参数值。
表3 参数设置 参数名称
默认值
codeBranch
master。
dockerOrg
phoenix(即在SWR服务中创建的组织名称)。
version
1.0.0
dockerServer
输入在SWR服务中获取的SWR服务器地址。
说明:
请务必确保参数“dockerOrg”、“dockerServer”的输入值是正确的,否则将导致任务失败。
- 单击“保存并执行”,在弹框中单击“确定”,启动构建任务。
当页面中显示
时,表示任务执行成功。请记录以“#”开头的字符串(例如
)。
如果构建失败,请根据失败步骤信息与日志中的报错信息排查。
- 检查发布件。
- 单击导航“制品仓库 > 软件发布库”,进入软件发布库。
- 在与项目同名的仓库中,可以找到“docker-stack”、“phoenix-sample-ci”两个文件夹。
- 在“docker-stack”文件夹中,可找到与2中记录的字符串同名的文件夹,在此文件夹中可以找到发布件“docker-stack.tar.gz”。
- 在文件夹“phoenix-sample-ci/1.0.0”中,可以找到归档的10个“.yaml”格式文件。
- 进入容器镜像服务,在导航中选择“组织管理”,单击与构建任务参数“dockerOrg”的值中同名的组织。
选择“镜像”页签,可以在列表中找到5个镜像“redis”、“postgres”、“worker”、“result”、“vote”。
- 依次在列表中单击5个镜像的名称进入详情页。在“镜像版本”页签中查看镜像版本。
- redis的镜像版本为“alpine”。
- postgres的镜像版本为“9.4”。
- worker、result、vote的镜像版本均与在2中记录的字符串相同。
设置提交代码触发自动编译
通过以下配置,可实现代码变更后自动触发构建任务的执行,从而实现项目的持续集成。
- 在任务“phoenix-sample-ci”的详情页,单击“编辑”。
- 选择“执行计划”页签。
- 打开“提交代码触发执行”开关
,保存任务。
由于在“参数设置”页签中“codeBranch”配置的默认值为“master”,因此本次设置的结果是当master有代码变更时自动触发构建。
- 验证配置结果:修改项目代码并提交至master,即可查看构建任务是否自动执行。
设置定时执行任务
为了防止问题代码进入生产环境,确保应用总是处于可部署的状态,团队建议对应用进行持续不断的验证。
通过以下设置,可实现构建任务的定时执行。
- 在任务“phoenix-sample-ci”的详情页,单击“编辑”。
- 选择“执行计划”页签。
- 打开“启用定时执行”开关
,根据需要选择执行日与执行时间,关闭“代码变化才执行”,保存任务。
本文档中勾选“全选”,执行时间为“12:00”(本文中使用默认时区,可以根据实际需要修改时区)。
- 验证配置结果:根据配置时间查看构建任务是否自动执行,本节不再赘述。