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