使用CodeArts快速搭建基于ECS部署的代码开发流水线
本文基于CodeArts内置代码仓库,介绍如何使用CodeArts完成项目的开发、构建与部署,实现持续交付。
本文采用的部署方式为ECS部署,适用于传统软件包部署场景。
如果您希望使用容器化部署方法,请参考使用CodeArts快速搭建基于CCE部署的代码开发流水线。
准备工作
- 已注册华为云。如果您还没有华为账号,请参考注册华为账号并开通华为云注册。
- 已购买弹性云服务器,购买时的必要配置可参考下表,表中未列出的配置可根据实际情况选择。完成购买后,参考配置安全组规则添加端口22及8080的入方向规则。
表1 弹性云服务器配置 配置分类
配置项
配置建议
基础配置
计费模式
选择“按需计费”。
实例
CPU架构
选择“x86计算”。
规格
选择2vCPUs 4GiB或以上规格。
操作系统
镜像
选择“公共镜像 > CentOS > CentOS 7.6 64bit(10GiB)”。
公网访问
弹性公网IP
选择“现在购买”。
公网带宽
选择“按宽带计费”。
云服务器管理
登录凭证
选择“密码”。
密码
输入自定义密码。
开通CodeArts体验版
- 进入购买CodeArts套餐页面。
- 选择“体验版”,勾选同意声明,单击“立即开通”。
- 开通成功,返回“软件开发生产线”页面,列表中显示已开通套餐记录。
新建项目
项目是使用CodeArts各服务的基础,创建项目后才能完成后续操作。
- 在CodeArts控制台单击“立即使用”。
- 单击“新建项目”,选择“Scrum”,输入项目名称“Demo”,单击“确定”。
新建代码仓库
代码仓库用于项目代码的版本管理,本文使用服务内置的模板“Java Web Demo”创建代码仓库。
- 单击导航栏“代码 > 代码托管”,进入代码托管服务。
- 单击“新建仓库”,选择“模板仓库”,单击“下一步”。
- 选择模板“Java Web Demo”,单击“下一步”。
- 输入代码仓库名称“Web-Demo”,单击“确定”。
检查代码
通过代码检查服务,可以对代码进行静态检查,管控代码质量。
- 单击导航栏“代码 > 代码检查”,进入代码检查服务。页面中显示自动创建的任务“Web-Demo-check”。
- 单击任务所在行的启动任务。
- 当页面中显示时,表示任务执行成功。单击任务名称,进入任务的“概览”页面查看检查结果。
如果任务执行失败,请根据页面弹出报错提示排查修改。
构建并归档软件包
通过编译构建服务,可将软件的源代码编译成目标文件,并把配置文件和资源文件等打包并归档到软件发布库中。
- 单击导航栏“持续交付 > 编译构建”,进入编译构建服务。页面中显示自动创建的任务“Web-Demo-build”。
- 单击任务所在行的启动任务。如果出现弹窗,请确认参数设置准确后,单击“确定”。
- 当页面中显示时,表示任务执行成功。单击任务名称,进入构建历史页面,在列表中找到最新一次构建的构建编号,记录该编号。
如果构建失败,请根据失败步骤信息与日志中的报错信息排查。
图1 构建编号
- 单击导航栏“制品仓库 > 软件发布库”,进入软件发布库。
在与项目名称同名的仓库中,依次进入与构建任务同名的文件夹、与构建编号同名的文件夹,即可找到生成的软件包“demoapp.jar”。
图2 查看软件包
部署构建包
通过部署服务,可将软件发布库中的软件包部署到虚拟机,并启动运行。
- 配置目标主机。
- 单击导航栏“持续交付 > 部署”,进入部署服务。页面中显示自动创建的应用“Web-Demo-deploy”。
- 单击,选择“编辑”,进入编辑页面。
- 选择“环境管理”页签,配置主机环境。
- 单击“新建环境”,配置以下信息,单击“保存”。
表4 新建环境 配置项
配置建议
环境名称
输入“demo-env”。
资源类型
选择“主机”。
操作系统
选择“Linux”。
- 单击“导入主机”,在弹框中选择1中配置的主机集群和主机,单击“导入”。
- 页面提示导入成功,关闭此窗口。
- 单击“新建环境”,配置以下信息,单击“保存”。
- 选择“部署步骤”页签,配置部署步骤。
- 安装JDK:确认jdk版本为“openjdk-1.8.0”。
- 选择部署来源:参考下表进行配置。
表5 部署来源配置 配置项
值
选择源类型
选择“构建任务”。
请选择构建任务
选择“Web-Demo-build”。
下载到主机的部署目录
输入“/usr/local/${package_name}/”。
- 停止SpringBoot服务:首次执行时,由于目标主机上还未有服务,执行该步骤会失败,因此建议禁用此步骤,单击步骤卡片上的,选择“禁用”。
图3 禁用“停止SpringBoot服务”
- URL健康测试:此步骤为可选步骤,本文中选择禁用此步骤。
- 选择“参数设置”页签,参考下表配置参数。
参数名
参数值
host_group
选择4中添加的环境名称“demo-env”。
package_url
无需此参数,单击对应行删除。
service_port
输入“8080”。
package_name
输入“demoapp”。
- 单击“保存并部署”。如果出现弹窗,请确认参数设置准确后,单击“确定”。
待页面显示。如果部署失败,请根据失败步骤信息与日志中的报错信息排查。
- 查看部署结果。
打开一个新的浏览器页面,输入访问地址“http://IP:8080/test”,其中“IP”为准备工作中购买的ECS的弹性公网IP。
如果出现以下访问结果,表示部署成功。
图4 部署结果
配置流水线
通过流水线可以将代码检查、编译构建、部署等任务串联起来,当代码发生改变时,自动触发流水线执行,实现持续交付。
- 单击导航栏“持续交付 > 流水线”,进入流水线服务。在“流水线”页签中显示自动创建的流水线“Web-Demo-pipeline”。
- 单击,选择“编辑”。
- 选择“任务编排”页签,配置流水线。
- 本文暂不涉及接口测试,因此需要将接口测试任务从流水线中移除。
图5 删除任务
- 单击任务“部署”,关联构建任务选择“构建”,其它配置项的值与部署构建包中的参数设置保持一致。
- 本文暂不涉及接口测试,因此需要将接口测试任务从流水线中移除。
- 选择“执行计划”页签,勾选“代码提交时触发”,在分支过滤下拉列表中勾选分支“master”。
图6 配置执行计划
- 单击“保存”,退出编辑。
- 进入部署服务,编辑部署步骤,启用步骤“停止SpringBoot服务”。
- 进入代码仓库,搜索并打开文件“TestController.java”。
单击,将“hello world”修改为“hello world again”,输入提交信息后单击“确定”。
图7 修改代码
- 返回流水线页面,可看到流水线正在运行中。
当页面显示时,重新访问页面“http://IP:8080/test”,访问结果将变为下图显示内容。
如果任务执行失败,请于执行失败处检查失败原因,可打开步骤详情查看任务日志,根据日志进行排查。
图8 流水线执行结果
后续操作
为了避免不必要的费用产生,完成本示例体验后,可以释放部分不再使用的资源。可以释放的资源如下。
资源名称 |
操作步骤 |
---|---|
CodeArts项目 |
进入项目的“设置 > 通用设置 > 基本信息”页面,单击“删除项目”,根据页面提示完成删除操作。 |
ECS |
登录ECS控制台,在列表中找到待删除的ECS,单击“更多 > 删除”,根据页面提示完成删除操作。 |
资源释放后无法恢复,请谨慎操作。