使用CodeArts快速搭建基于CCE部署的代码开发流水线
本文基于CodeArts内置代码仓库,介绍如何使用CodeArts完成项目的开发、构建与部署,实现持续交付。
本文采用的部署方式为CCE部署,适用于容器化部署场景。
如果您希望使用传统软件包部署方法,请参考使用CodeArts快速搭建基于ECS部署的代码开发流水线。
准备工作
开通CodeArts体验版
- 进入购买CodeArts套餐页面。
- 选择“体验版”,勾选同意声明,单击“立即开通”。
- 开通成功,返回“软件开发生产线”页面,列表中显示已开通套餐记录。
新建项目
项目是使用CodeArts各服务的基础,创建项目后才能完成后续操作。
- 在CodeArts控制台单击“立即使用”。
- 单击“新建项目”,选择“Scrum”,输入项目名称“Demo”,单击“确定”。
新建代码仓库
代码仓库用于项目代码的版本管理,本文使用服务内置的模板“Java Web Demo”创建代码仓库。
- 单击导航栏“代码 > 代码托管”,进入代码托管服务。
- 单击“新建仓库”,选择“模板仓库”,单击“下一步”。
- 选择模板“Java Web Demo”,单击“下一步”。
- 输入代码仓库名称“Web-Demo”,单击“确定”。
准备Dockerfile
Dockerfile是用于构建镜像的文本文件,其中包含了构建镜像所需的指令和说明。了解Dockerfile更详细说明,请参见Docker官网。
- 单击仓库名称,进入代码仓库。
- 单击文件列表上方“新建”,在下拉列表中选择“新建文件”。
图1 新建文件
- 输入文件名Dockerfile,文件详情输入以下代码行。
FROM openjdk:8-alpine ADD target /demo COPY ./target/demoapp.jar /demo CMD ["java","-jar","/demo/demoapp.jar"]
- 输入备注信息,单击“提交”。
构建并推送镜像
通过编译构建任务将软件的源代码编译成镜像,并把镜像推送归档到容器镜像服务(SWR)中。
- 单击导航栏“持续交付 > 编译构建”,进入编译构建服务。
- 单击“新建任务”,配置任务信息。
- 基本信息:配置以下信息,单击“下一步”。
表3 构建任务基本信息 配置项
配置建议
名称
输入“Web-Demo-docker”。
代码源
选择“Repo”。
代码仓
选择“Web-Demo”。
分支
选择“master”。
- 构建模板:选择“空白构建模板”,单击“确定”。
- 基本信息:配置以下信息,单击“下一步”。
- 配置构建步骤。
- 单击“点击添加构建步骤”,在步骤列表中找到“Maven构建”,单击“添加”。
- 单击“添加步骤”,在步骤列表中找到“制作镜像并推送到SWR仓库”,单击“添加”。
- 参照下表配置步骤“制作镜像并推送到SWR仓库”(表中未涉及的字段保持默认配置即可)。
表4 配置镜像信息 配置项
配置建议
组织
输入在准备工作中创建的组织名称(“web-demo”)。
镜像标签
v1.0.0
- 完成配置,单击“保存并执行”。
当页面中显示时,表示任务执行成功。如果构建失败,请根据失败步骤信息与日志中的报错信息排查。
- 登录容器镜像服务控制台,在页面左侧导航栏中选择“我的镜像”。
页面中有一条镜像名称为“demo”,所属组织为“web-demo”的记录。
单击镜像名称查看详情,镜像版本为“v1.0.0”。
图2 查看镜像
创建负载
在云容器引擎(CCE)中创建无状态负载(Deployment),用于加载运行demo镜像。
- 登录云容器引擎控制台,单击在准备工作中购买的集群,进入详情页。
- 在页面左侧导航选择“工作负载”,单击“创建工作负载”。
- 参考下表完成配置,单击“创建工作负载”。
表5 创建工作负载 配置分类
配置项
配置建议
基本信息
负载类型
选择“无状态负载”。
负载名称
输入“web-demo”。
实例数量
选择“1”。
容器配置
镜像名称
单击“选择镜像”,在弹框中勾选“demo”,单击“确定”。
更新策略
勾选“总是拉取镜像”。
镜像版本
选择“v1.0.0”。
高级配置
升级策略
升级方式选择“替换升级”。
- 页面提示创建成功,单击“查看工作负载详情”,返回负载详情页面,“实例列表”页签中显示一条记录。
当该记录的状态为“运行中”时,选择“访问方式”页签,单击“创建”,参考下表完成创建服务配置,单击“确定”。
如果实例状态异常,请参考工作负载异常排查处理。
表6 配置访问方式 配置项
配置建议
Service名称
输入“web-demo”。
访问类型
选择“负载均衡”。
服务亲和
选择“集群级别”。
负载均衡器
- 选择“共享型 > 自动创建”。
- 实例名称:输入“web-demo-test”。
- 弹性公网:选择“自动创建”。
端口配置
- 协议:TCP
- 容器端口:8080
- 服务端口:8080
- 列表中显示一条记录。
当该记录中显示时,将鼠标悬浮在访问类型下的负载均衡器名称处,在弹窗中复制公网地址。图3 复制访问地址
- 打开新的浏览器页面,输入“http://IP:8080/test”,其中IP为5中复制的公网地址。
如果出现以下访问结果,表示负载运行成功。
图4 部署结果
部署镜像
通过在部署服务中创建应用,将镜像部署自动化。
- 返回CodeArts页面,单击导航栏“持续交付 > 部署”,进入部署服务。
- 单击“新建应用”。
- 输入应用名称“web-demo-k8s”,单击“下一步”。
- 选择“空白模板”,单击“确定”。
- 在步骤列表中搜索并添加步骤“Kubernetes快速部署(CCE集群)”,参考下表完成步骤配置。
- 单击“保存并部署”。
当页面显示时,表示测试通过。如果部署失败,请根据失败步骤信息与日志中的报错信息排查。
配置流水线实现自动化更新镜像部署
通过配置流水线,将代码仓库、构建、部署串联起来,当代码仓库中发生代码提交动作时,可以自动触发流水线的执行,实现持续交付。
- 单击导航栏“持续交付 > 流水线”,进入流水线服务。
- 单击“新建流水线”,配置流水线。
- 基本信息:配置以下信息,单击“下一步”。
表8 流水线基本信息 配置项
配置建议
名称
输入“pipeline-web-demo”。
代码源
选择“Repo”。
代码仓
选择“Web-Demo”。
默认分支
选择“master”。
- 模板:选择“空模板”,单击“确定”。
- 基本信息:配置以下信息,单击“下一步”。
- 配置工作流。
- 单击“阶段_1”后的,在“编辑阶段”窗口中输入阶段名称“构建”,单击“确定”。
图5 编辑阶段名称
- 单击“新建任务”。
在“新建任务”窗口中,单击“Build构建”插件后的“添加”。
图6 添加任务
- 参考下表配置任务信息,单击“确定”。
表9 编辑构建任务 配置项
配置建议
名称
保持默认值即可。
请选择需要调用的任务
选择“Web-Demo-docker”。
仓库
选择“Web-Demo”。
- 单击“新建阶段”,并修改阶段名称为“部署”。
- 单击“新建任务”,添加插件“Deploy部署”。
- 选择调用任务“web-demo-k8s”、关联构建任务选择3.c设置的任务名称。
- 单击“阶段_1”后的,在“编辑阶段”窗口中输入阶段名称“构建”,单击“确定”。
- 选择“执行计划”页签,勾选“代码提交时触发”,在分支过滤下拉列表中勾选分支“master”。
图7 配置执行计划
- 单击“保存”,退出编辑。
- 进入代码仓库,搜索并打开文件“TestController.java”。
单击,将“hello world”修改为“hello world again”,输入提交信息后单击“确定”。
图8 修改代码
- 返回流水线页面,可看到流水线正在运行中。
当页面显示时,重新访问页面“http://IP:8080/test”,访问结果将变为下图显示内容。
如果任务执行失败,请于执行失败处检查失败原因,可打开步骤详情查看任务日志,根据日志进行排查。
图9 流水线执行结果
后续操作
为了避免不必要的费用产生,完成本示例体验后,可以释放部分不再使用的资源。
可以释放的资源如下。
资源名称 |
操作步骤 |
---|---|
CodeArts项目 |
进入项目的“设置 > 通用设置 > 基本信息”页面,单击“删除项目”,根据页面提示完成删除操作。 |
SWR组织、镜像 |
|
CCE集群 |
登录CCE控制台。在列表中找到待删除的集群,单击,选择“删除集群”,根据页面提示完成删除操作。 |
资源释放后无法恢复,请谨慎操作。