使用CodeArts快速搭建基于ECS部署的代码开发流水线
本文基于CodeArts内置代码仓库,介绍如何使用CodeArts完成项目的开发、构建与部署,实现持续交付。
本文采用的部署方式为ECS部署,适用于传统软件包部署场景。
如果您希望使用容器化部署方法,请参考使用CodeArts快速搭建基于CCE部署的代码开发流水线。
操作流程
操作步骤 |
说明 |
---|---|
注册华为账号并开通华为云、实名认证,为账户充值,购买ECS。 |
|
CodeArts支持包年/包月计费,使用CodeArts前需要完成购买,开通体验版即可完成本文中的操作流程。 |
|
项目是使用CodeArts各服务的基础,创建项目后才能完成后续操作。 |
|
代码仓库用于项目代码的版本管理,本文使用服务内置的模板“Java Web Demo”创建代码仓库。 |
|
通过代码检查服务,可以对代码进行静态检查,管控代码质量。 |
|
通过编译构建服务,可将软件的源代码编译成目标文件,并把配置文件和资源文件等打包并归档到软件发布库中。 |
|
通过部署服务,可将软件发布库中的软件包部署到虚拟机,并启动运行。 |
|
通过流水线可以将代码检查、编译构建、部署等任务串联起来,当代码发生改变时,自动触发流水线执行,实现持续交付。 |
|
按需计费的资源会产生持续计费,为了避免不必要的费用产生,完成体验后,可以释放不再使用的资源。 |
步骤二:新建项目
- 在CodeArts控制台单击“进入工作台”。
- 在CodeArts首页单击“新建 > 新建项目”,进入新建项目页面。
- 选择模板“Scrum”。
- 输入项目名称(项目名称不超过128个字符,本文中使用“Demo”),单击“确定”。
新建项目成功,页面自动跳转至“工作项”页面。
步骤三:新建代码仓库
- 在项目中单击导航栏“代码 > 代码托管”,进入代码托管服务。
- 单击“新建仓库”,进入新建仓库页面。
- 选择“按模板新建”,单击“下一步”。
- 选择模板“Java Web Demo”,单击“下一步”。
- 输入代码仓库名称(代码仓库名称需以大小写字母、数字、下划线开头,可包含大小写字母、数字、中划线、下划线、英文句点,但不能以.git、.atom或.结尾,本文中使用“Web-Demo”),单击“确定”。
新建代码仓库成功,页面跳转至仓库内,显示仓库的代码文件列表。
步骤四:检查代码
- 单击导航栏“代码 > 代码检查”,进入代码检查服务。
页面中显示自动创建的任务“Web-Demo-check”。
- 单击
,选择“设置”。
- 单击导航“规则集”,在规则中关闭“CSS”、“HTML”后的开关
。
图1 编辑规则集 - 单击“开始检查”,启动任务。
当页面中显示
时,表示任务执行成功。
如果任务执行失败,请根据报错提示,参考代码检查常见问题排查处理。
- 单击“代码问题”页签查看问题列表。
由于无致命或严重问题,本文中暂不修改代码。
步骤五:构建并归档软件包
- 单击导航栏“持续交付 > 编译构建”,进入编译构建服务。
页面中显示自动创建的任务“Web-Demo-build”。
- 单击任务所在行的
启动任务。如果出现弹窗,请确认参数设置准确后,单击“确定”。
当页面中显示
时,表示任务执行成功。
如果构建失败,请根据失败步骤信息与日志中的报错信息,参考编译构建常见问题排查处理。
- 单击任务名称,查看任务详情。在“构建历史”页面找到最新一次构建的构建编号,记录该编号。
图2 构建编号
- 单击导航栏“制品仓库 > 软件发布库”,进入软件发布库。
在“仓库视图”中找到与项目名称同名的仓库,依次进入文件夹“Web-Demo-build > 3中记录构建编号”,即可找到生成的软件包“demoapp.jar”。
图3 查看软件包
步骤六:部署构建包
- 配置目标主机。
- 单击导航栏“设置 > 通用设置 > 基础资源管理”,进入基础资源管理页面。
- 单击“新建主机集群”,配置以下基本信息,单击“保存”。
表1 新建主机集群 配置项
示例
说明
集群名称
host-group
自定义主机集群名称,仅支持3-128位数字、中文、英文字母、“-”、“_”“.”。
操作系统
Linux
选择加入集群的主机的操作系统类型,可以选择“Linux”或“Windows”。
主机联通方式
直连模式
选择部署服务与目标主机的联通方式,可以选择“直连模式”或“代理模式”。
执行主机
官方资源池
资源池是部署软件包时执行部署命令的物理环境的集合。
可以选择服务提供的“官方资源池”,也可以将自有的服务器作为资源池。
- 待页面提示新建主机集群成功,在“目标主机”页签中单击“添加或导入主机”,选择添加方式“导入已购ECS”,在列表中找到准备工作中购买的ECS,单击“导入”。
图4 导入ECS
- 配置以下信息,单击“确定”。
表2 添加主机 配置项
示例
说明
用户名
root
ECS的登录用户名,Linux主机通常为“root”。
密码
输入在准备工作中购买ECS时设置的密码。
ECS的登录密码。
ssh端口
22
通常为“22”,也可以自定义端口。
- 页面显示一条主机记录,当“连通性验证”列的值显示为“成功”时,表示主机添加完成。
如果主机添加失败,请根据失败详情,参考主机管理常见问题排查处理。
- 单击导航栏“持续交付 > 部署”,进入部署服务。
页面中显示自动创建的应用“Web-Demo-deploy”。
- 单击
,选择“编辑”,进入编辑页面。
- 选择“环境管理”页签,配置主机环境。
- 单击“新建环境”,配置以下基本信息,单击“保存”。
表3 新建环境 配置项
示例
说明
环境名称
demo-env
自定义环境名称,仅支持3-128位数字、中文、英文字母、“-”、“_”、“.”。
资源类型
主机
环境中的资源类型,默认为“主机”。
操作系统
Linux
选择即将添加到环境中的主机的操作系统类型,可以选择“Linux”或“Windows”。
- 待页面提示创建成功,在“资源列表”页签中单击“导入主机”,在弹框中选择1中配置的主机集群和主机,单击“导入”。
- 待页面提示导入成功,关闭此窗口。
- 单击“新建环境”,配置以下基本信息,单击“保存”。
- 选择“部署步骤”页签,配置部署步骤。
- 安装JDK:确认jdk版本为“openjdk-1.8.0”。
- 选择部署来源:参考下表进行配置,其他配置保持默认。
表4 部署来源配置 配置项
示例
说明
选择源类型
构建任务
软件包的来源,可以选择“制品仓库”或“构建任务”。
请选择构建任务
Web-Demo-build
当“选择源类型”为“构建任务”时,显示此配置项。
下载到主机的部署目录
/usr/local/${package_name}/
软件包在目标主机中的保存路径。
- 启动/停止SpringBoot服务:首次执行部署时,由于目标主机上还未启动过SpringBoot服务,执行该步骤会失败,因此建议禁用此步骤,单击步骤卡片上的
,选择“禁用”。
图5 禁用“停止SpringBoot服务” - 启动SpringBoot服务:保持默认配置即可。
- URL健康测试:此步骤为可选步骤,本文中选择禁用此步骤。
- 选择“参数设置”页签,参考下表配置参数。
表5 配置参数 名称
默认值
host_group
选择4中添加的环境名称“demo-env”。
package_url
无需此参数,单击对应行
删除。
service_port
输入“8080”。
package_name
输入“demoapp”。
- 单击“保存并部署”。如果出现弹窗,请确认参数设置准确后,单击“确定”。
待页面显示
。如果部署失败,请根据失败步骤信息与日志中的报错信息,参考部署常见问题排查处理。
- 查看部署结果。
打开一个新的浏览器页面,输入访问地址“http://IP:8080/test”,其中“IP”为准备工作中购买的ECS的弹性公网IP。
如果出现以下访问结果,表示部署成功。
图6 部署结果
步骤七:配置流水线
- 单击导航栏“持续交付 > 流水线”,进入流水线服务。
在“流水线”页签中显示自动创建的流水线“Web-Demo-pipeline”。
- 单击
,选择“编辑”。
- 选择“任务编排”页签,配置流水线。
- 本文暂不涉及接口测试,因此需要将接口测试任务从流水线中移除。
图7 删除任务
- 单击任务“部署”,关联构建任务选择“构建”,其它配置项的值与步骤六:部署构建包中的参数设置保持一致。
- 本文暂不涉及接口测试,因此需要将接口测试任务从流水线中移除。
- 选择“执行计划”页签,勾选“代码提交时触发”,在分支过滤下拉列表中勾选分支“master”。
图8 配置执行计划
- 单击“保存”,退出编辑。
保存成功,页面显示更新后的执行计划。
- 进入部署服务,编辑部署步骤,启用步骤“停止SpringBoot服务”。
- 进入代码仓库,搜索并打开文件“TestController.java”。
单击
,将“hello world”修改为“hello world again”,输入提交信息后单击“确定”。
图9 修改代码 - 返回流水线页面,可看到流水线正在运行中。
当页面显示
时,重新访问页面“http://IP:8080/test”,访问结果将变为下图显示内容。
如果流水线执行失败,可单击失败原因提示,打开日志,参考流水线常见问题排查处理。
图10 流水线执行结果