基于Repo和流水线门禁的分支合并与部署

1 概述

1.1 背景介绍

流水线(CodeArts Pipeline)提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型,实现DevOps持续交付高效自动化,缩短应用TTM(Time to Market)交付周期,提升研发效率。

流水线本质上是一个可视化的自动化任务调度平台,需要配合软件开发生产线中编译构建、代码检查、测试计划、部署等服务的自动化任务使用。根据用户需要的场景,如开发测试环境应用部署、生产环境应用部署等,对这些自动化任务进行自定义编排,一次配置后就可以一键自动化触发调度执行,避免频繁低效的手工操作。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计60分钟。

1.4 案例流程

REPO-6.png{{{width="65%" height="auto"}}}

说明:

① 购买弹性云服务器,创建虚拟私有云及安全组; ② 登录云主机,购买CodeArts并创建CodeArts项目,创建代码质量门禁检查流水线; ③ CodeArts IDE本地拉取云上代码; ④ CodeArts IDE集成CodeArts Pipeline插件实现本地调用华为云云上流水线任务; ⑤ 云上流水线查看运行结果;进行分支合并,创建部署流水线。

1.5 资源总览

本案例花费总计约1.55元,资源采取按需计费,体验结束后,请及时释放资源,避免产生多余费用,给您带来不便。

资源名称规格单价(元)时长(h)
弹性云服务器ECSX86计算,通用计算增强型 | c6.large.4 | 2 vCPUs | 8 GiB CentOS 7.6 64bit (40GB)0.751
弹性公网IP按流量计费 5Mbit/s0.8元/GB1
CodeArts服务免费体验版免费1

2 操作步骤

2.1 购买CodeArts

已购买请跳过。

在浏览器中输入华为云网址:进入华为云首页。在华为云的首页右上方,点击“登录”,在弹出的对话框中输入自己的用户名和密码。

在华为云首页,依次选择“产品”\>“开发与运维”\>“软件开发生产线CodeArts”,进入CodeArts页面。

4d1ebc796d3b165983dfab4e0dce94d3.png

点击“购买”按钮进入购买页面,选择“体验版”购买即可。

2.2 创建CodeArts项目

2.2.1 创建云上项目

购买服务后,在软件开发生产线 CodeArts概览页,点击“立即使用”,进入CodeArts首页,左上角选择“华北-北京四”,在“模板”中,选用“Scrum”类型项目模板。

0f4f023c468e0306ca19236ac9526a85.png

在打开的新建项目窗口,填写好项目名称(例:Scrum-demo),点击“确定”创建项目。

创建云上仓库,进入Scrum-demo项目,点击左侧“代码-\>代码托管-\>新建仓库”。

59225313449bf7a11a6ebf64fd5cdbd0.png

选择 “模板仓库-\>下一步-\>Java Maven Demo”,点击“下一步”。

2.2.1-1.png

输入仓库名称(例:Scrum-demo-ck),点击“确定”,完成代码仓库创建。

1133887bd4fe52d819988752ae25f183.png

进入仓库,示例代码如下(如有自己的代码请参考“【开发者空间实践指导】软件开发生产线CodeArts初体验:一站式体验代码云上托管、构建、检查与修复-云社区-华为云”上传至仓库)。

6a2ed0e22eb05cea62244d3a9a7998c5.png

2.2.2 CodeArts IDE本地代码拉取

如下图中所示,在代码仓库中,点击右上角的“克隆/下载”,选择“用HTTPS克隆”,点击“复制图标”,复制代码仓库的HTTPS地址。

418c1e246afc310ca72e910c00cc0081.png

获取克隆仓库的用户名和密码:点击“HTTPS密码”。

b8d21a4232ac7f96a606660821ad435f.png

跳转至“HTTPS密码”页面,这里的用户名,密码(默认为账号的登录密码),在克隆代码时使用。

2.2.2-1.png

开发者空间,点击自己云主机的“进入桌面”,登录云主机,在主机桌面,双击打开CodeArts IDE for Java。

ee84b9d83fdb03fa817dc3da3620d477.png

选择“克隆Git仓库”, 输入上面复制的仓库HTTPS地址,点击 “克隆”。5ac3e20bb4198459ed0615ed5091a3a6.png

在提示“Username”和“Password”处,填写上面获取的仓库HTTPS用户名和密码并“回车”。

ea30b90e35d8d2d746183e4168b23bd2.png

点击“Open”,打开仓库,云仓库与本地CodeArts IDE for Java连接完毕。

0dfac0c2249598b7057c74859b9b28c4.png

2.3 创建代码质量门禁检查的流水线

2.3.1 创建检查任务

返回CodeArts项目,点击左侧“代码-\>代码检查-\>新建任务”。

de54d6e1b9002293d2d7cfcadae5f916.png

填写任务名称(例:Scrum-demo-check),仓库选择步骤2.2.1中创建的仓库,点击“新建任务”。

f5ec4defb6a66afbb27b750140834b24.png

2.3.2 创建构建任务

点击左侧“持续交付-\>编译构建-\>新建任务”。

2.3.2-1.png

填写名称(例:Scrum-demo-ck-build),代码源选择“Ropo”,代码仓选择步骤2.2.1中创建的代码仓库的“master”分支,点击“下一步”。

3e2980eaff65612bebebf290be3f518a.png

选择“Maven” 模板,点击“确定”。

0b0240b286641fce837bd7f9188d0fe8.png

点击右上方“保存”按钮,保存任务。

2.3.3 创建流水线

点击左侧“持续交付-\>流水线-\>新建流水线”。

1f19d2ecb36df6e0d3294576f3aedba4.png

填写流水线名称(例:Scrum-demo-ck-pipeline),代码源选择“Repo”,代码仓选择步骤2.2.1中创建的代码仓库的“master”分支,点击“下一步”。

2.3.3-1.png

选择“空模板”,点击“确定”。

2868d6c7e723780c0939b7787ea56121.png

自动跳转流水线界面,在“阶段_1”中点击 “新建任务”,右侧跳出弹窗,选择“构建-\>Build构建”,点击 “添加”。

575c8a5707cc4b8cc04d6e4cc592ef8d.png

调用的任务选择步骤2.3.2中创建的构建任务,仓库选择步骤2.2.2中创建的代码仓库,点击“确定”。

ed2699ecf3838c3ec4eac2c9bad536c1.png

在“阶段_1”中点击“并行任务”,右侧跳出弹窗,选择“代码检查-\>Check代码检查”,点击“添加”。

c3067fdded34dba0ed21b365931036f1.png

选择步骤2.3.1中创建的检查任务,点击“确定”。

196a3c3da2a8361c3f126e47081ee4cc.png

点击“阶段_1”的“编辑”图标,将阶段名称修改为“构建和检查”,点击“确定”。

2.3.3-2.png 添加门禁:点击“构建和检查”阶段的“准出条件”,选择“标准策略准出条件”,点击“添加”。

6d65c1ba1dd122cda18d3443d0266952.png

选择“系统策略”,点击“确定”,门禁添加已完成。

274af592aa695426febf06b3d52a10be.png

点击右上方“保存并执行”,弹出来界面点击“执行”,等待执行完毕。绿色为执行成功,红色为失败。

2.3.3-3.png

点击左侧“制品仓库-\>软件发布库”,可以找到流水线执行生成的jar包,复制下载地址备用。

7b40d136e1cf2768e2b95148686ec746.png

2.4 CodeArts IDE本地管理CodeArts流水线

在云主机桌面,单击左下角浏览器图标,用浏览器打开https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0032/huaweicloud.codearts-pipeline-1.0.0.carts,下载CodeArts Pipeline插件。 image.png 在云主机的CodeArts IDE for Java中,点击右侧“扩展”菜单栏,选择 图标,打开上面CodeArts Pipeline插件下载地址并选中插件,单击“安装”。 image.png 如遇“正在安装非受信任的扩展”提示,单击“继续安装”。 安装完成,单击“立即重载”。 image.png

安装完成后,点击左侧的“DevSecOps”菜单栏(如没有请重启IDE),并切换自己项目所在的区域“北京四”,查询当前项目下的所有流水线,选择步骤2.3.3中创建的代码质量门禁流水线,点击三角号“运行”图标。

2.4.1.png

绿色代表执行完毕,此时切到流水线界面可以查看刚刚执行的流水线。

0a7473a35b25311cf1e02f0594696a53.png

2.5 合并分支

2.5.1 分支管理介绍

分支是版本管理工具中最常用的一种管理手段,使用分支可以把项目开发中的几项工作彼此隔离开来使其互不影响,当需要发布版本之前再通过分支合并将其进行整合。

在代码托管服务/Git仓库创建之初都会默认生成一条名为master的分支,一般作为最新版本分支使用,开发者可以随时手动创建自定义分支以应对实际开发中的个性场景。

本章节介绍如何创建分支及分支合并。

2.5.2 创建分支及分支合并

点击左侧“工作项-\>需求管理-\>工作项-\>新建”,下拉框中选择“task”。

531396cd6c76812a99519f205d441a59.png

填写名称(例:修改代码demo),点击“确定”。

054c8c5aa3ff8a3d85e78ac463563834.png

点击左侧“代码-\>代码托管”,点击代码仓库,进入代码界面,点击“代码-\>分支-\>所有分支”,可以看到只有一个主分支master,点击“新建分支”。

e43724ada1e54ea34187f38b0bef3ee8.png

填写分支名称(例:feature),关联工作项选择上面创建的task。点击“确定”。

14f16acdb589e1bbebe69174f2907d60.png

点击“代码-\>master”,下拉框中选择feature,切换到feature分支,模拟代码修改。

55a47ae1acddcd15b447caed2da1635e.png

找到src下面的 “HelloWorld.Java”。点击“编辑”图标。

4730580e49b7298cbbc8baaa147700cd.png

增加一行代码(例:System.out.println("Hello HuaWei!");),点击“确定”。

4518c433c1951d9beab0a1fd9df012de.png

点击右上角“新建合并请求”,源分支选择“feature”,目标分支选择“master”,模拟分支合并,点击“下一步”。

7a67ff95e8586f0142b650044497b309.png

选择标题,并关联上面创建的task工作项,点击“新建合并请求”。 d27304fcc1ef431a0dd58056929cf624.png

点击右上角的“合入”按钮。

c23c859c3e4d417de09b68e524e91188.png

合入完成后,点击“代码”,可以查看master分支的“HelloWorld.Java”文件代码已修改。

1b4d02a5a1047163ec046198f7f26fac.png

2.6 创建虚拟私有云和安全组

进入创建VPC页面,区域选择“华北-北京四”,填写自己可以识别 的“名称”和“子网名称”,点击“立即创建”完成虚拟私有云的创建。

db5d6886e49220122b75b3e03e324d85.png

进入创建安全组页面,区域选择“华北-北京四”,填写自己可以识别 “名称”,预设规则选择“通用Web服务器”,点击“立即创建”完成安全组的创建。

c32bbb709d4392179ef42019186d625a.png

2.7 购买弹性云服务器

浏览器进入ECS弹性云服务器控制台,点击右上角“购买弹性云服务器”,ECS配置如下:

配置项具体配置
计费模式:按需计费
区域/可用区华北-北京四 | 随机分配
规格X86计算 | c6.large.4 | 2vCPUs | 8GiB
操作系统镜像CentOS 7.6 64bit with ARM
系统盘通用型SSD, 40GiB
弹性公网IP全动态BGP | 按流量计费 | 5 Mbit/s | 随实例释放
网络和安全组选择步骤2.6中购买的虚拟私有云和安全组
公网带宽按流量计费 5Mbit/秒
云服务器名称(自定义)
登录凭证(自定义)
购买量1

997a5b852d62df0d23606f1f36c69166.png

10082c0c4772e687952971f93b1a7d0a.png

18c6c15bae406a506a474fe16b69617b.png

点击“立即购买”完成购买,购买成功后可以看到服务器名称及公网IP等信息。

2.7.png

2.8 创建部署流水线

2.8.1 创建主机集群

进入CodeArts项目,点击“设置-\>通用设置-\>基础资源管理”,点击“新建主机集群”,设置集群名称(例:scrum-demo-group),点击“保存”。

fd61fbb08524daca942276082310f7f0.png

点击“添加或导入主机”,选择“通过IP手动添加”,输入步骤2.7中购买的服务器名称,IP地址为其公网地址,输入用户名密码,ssh端口22。

1831d3f15a262328c5d54cb2013110d9.png

点击“确定”,等待一会可以看到主机导入成功。

a1eba64ad145fd887c3463b47319fb82.png

2.8.2 创建部署任务

点击“持续交付-\>部署-\>新建应用”。

5056a0ea0c289f40f03d528ec855dabc.png

填写名称(例:scrum-demo-deploy),点击“下一步”,选择“Tomcat应用部署”,点击“确定”。
6cb06a6426f82762ddb90d4fc119bed6.png

点击“环境管理-\>新建环境”,填写环境名称(例:scrum-demo-env),点击“保存”。

2.8-1.png

点击“导入主机”,选择步骤2.8.1中创建的主机集群,勾选集群下的主机,点击“导入”,等待成功即可。

bf2c0dc434de1e5dcb21d45b315d4af4.png

点击“参数设置”,host_group的默认值选择上一步新建环境名称,package_url为步骤2.3.3中jar包地址,点击“保存”。

5b0ed78a490c85b3bd1852260d2492dc.png

2.8.3 创建部署流水线

点击“持续交付-\>流水线”,编辑步骤2.3.3中创建的流水线。

a81bde688e64c1397c3d0caec2d8e33e.png

点击“新建阶段-\>新建任务”,右侧跳出弹窗,选择“部署-\>Deploy部署”,点击 “添加”。

ff159df6b5965cce0798d37829c2dd3f.png

调度任务选择步骤2.8.2中创建的部署任务,关联构建任务选择“Build构”,点击“确定”。

1f44edafdd8e7978a1d88ec350e01090.png

点击右上角“保存并执行”,弹出来界面中点击“执行”,等待执行成功(也可以在云主机IDE中查看运行该流水线,请参照步骤2.4)。

7269e8610faf86a4780874a37f0f52a4.png

至此,基于Repo和流水线门禁的分支合并与部署全部内容完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值