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