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

本文分享自华为云社区《【开发者空间实践】基于Repo和流水线门禁的分支合并与部署-云社区-华为云》


一、案例介绍

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

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

通过本次实验,可以学会通过CodeArts流水线来自定义编排云上任务,实现流水线门禁的分支合并与部署。

二、免费领取云主机

如您还没有云主机,可点击链接 ,根据领取指南进行操作。

如您已领取云主机,可直接开始实验。

三、实验流程

说明:

1、购买弹性云服务器,创建虚拟私有云及安全组;

2、登录云主机,购买CodeArts并创建CodeArts项目,创建代码质量门禁检查流水线;

3、CodeArts IDE本地拉取云上代码;

4、CodeArts IDE集成CodeArts Pipeline插件实现本地调用华为云云上流水线任务;

5、云上流水线查看运行结果;进行分支合并,创建部署流水线。

实验资源

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

资源名称

规格

单价(元)

时长(h

弹性云服务器ECS

X86计算,通用计算增强型

| c6.large.4 | 2 vCPUs | 8 GiB  CentOS 7.6 64bit (40GB)

0.75

1

弹性公网IP

按流量计费  5Mbit/s

0.8元/GB

1

CodeArts服务

免费体验版

免费

1

四、基于Repo和流水线门禁的分支合并与部署最佳实践

4.1 购买CodeArts

已购买请跳过。

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

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

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

4.2 创建CodeArts项目

4.2.1 创建云上项目

购买服务后,点击立即使用,进入CodeArts首页,左上角选择“华北-北京四”,选择“Scrum”类型项目模板。

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

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

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

输入仓库名称,点击“确定”。

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

4.2.2 CodeArts IDE本地代码拉取

复制云上代码仓库地址。

登录云主机,双击打开CodeArts IDE。

点击CodeArts IDE 右上角的头像,登录华为云账号。

登录完毕,选择“克隆git仓库”, 输入云仓库地址,点击 “克隆”。

获取仓库的用户名和密码。

填写到Codearts IDE中。

云仓库与本地CodeArts IDE连接完毕。

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

4.3.1 创建检查任务

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

修改任务名称,仓库选择为4.2.2创建的仓库,点击“新建任务”。

3.3.2 创建构建任务

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

修改名称,点击“下一步”。

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

点击右上方“保存”。

3.3.3 创建流水线

点击左侧“流水线新建流水线”。

修改流水线名称,点击“下一步”。

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

确定完成自动跳转流水线界面,点击“新建任务”,右侧跳出弹窗,选择“构建Build构建”,点击 “添加”。

调用的任务选择4.3.2创建的构建任务,仓库选择4.2.2创建的仓库,点击“确定”。

点击“并行任务”,右侧跳出弹窗,选择“代码检查Check代码检查”,点击“添加”。

同理选择4.3.1创建的检查任务,点击“确定”。

添加门禁:点击“准出条件”,选择标准策略准出条件,点击“添加”。

图片2.png

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

图片1.png

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

点击左侧“制品仓库软件发布库”,可以找到jar包,复制下载地址备用。

4.4 CodeArts IDE本地管理CodeArts流水线

在CodeArts IDE中安装CodeArts Pipeline插件。

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

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

4.5 合并分支

点击左侧“工作项需求管理迭代新建”。

选择 “task”,设置名称(例:修改代码demo)。

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

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

点击“代码master”,下拉框选择刚刚创建的feature分支,模拟代码修改。

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

修改代码,点击“确定”。

点击右上角“新建合并请求”,模拟分支合并,点击“下一步”。

选择标题,并关联工作项,点击“新建合并请求”,点击“合入”。

合入完成后,点击代码,可以查看master代码已修改。

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

在华为云首页,依次选择“产品”>“网络”>“虚拟私有云VPC”,进入服务页面,然后点击“开始使用”进入创建虚拟私有云页面。

在创建页面,“名称”“子网名称”填入自己可以识别的名称,企业项目选择“default”,点击“立即创建”完成虚拟私有云的创建。

4.7 购买弹性云服务器

浏览器登录华为云控制台,搜索ECS弹性云服务器,进入ECS界面,点击有上角购买弹性云服务器,ECS配置如下:

配置项

具体配置

计费模式:

按需计费

区域/可用区

华北-北京四 | 随机分配

规格

X86计算 | c6.large.4 | 2vCPUs | 8GiB

操作系统镜像

CentOS 7.6 64bit with ARM

系统盘

通用型SSD, 40GiB

弹性公网IP

全动态BGP | 按流量计费 | 5 Mbit/s | 随实例释放

网络和安全组

选择第二步购买的虚拟私有云,安全组没有可新建,入方向网段开放22,8080端口

公网带宽

按流量计费

云服务器名称

(自定义)

登录凭证

(自定义)

购买量

1

购买弹性云服务器时,若无虚拟私有云VPC、安全组,需要新建;安全组也可以对全部开放22,8084端口(不建议,若通过云主机连接不到该服务器,可以尝试全开)。

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

4.8 创建部署流水线

4.8.1 创建主机集群

进入CodeArts项目,点击“设置通用设置基础资源管理”,点击“新建主机集群”设置集群名称(例:scrum-demo-group),点击“添加或导入主机”,选择“通过ip手动添加”,输入4.6创建的服务器名称,IP地址为公网地址,输入用户名密码,端口22。

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

4.8.2 创建部署任务

点击“部署新建应用”,设置名称,点击“下一步”,选择“Tomcat应用部署”,点击“确定”。

点击“环境管理新建环境”,自定义环境名称,点击“确定”。

点击“导入主机”,选择4.7.1创建的主机集群,点击“保存”,等待成功即可。

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

4.8.3 创建部署流水线

点击“流水线新建流水线”,检查及构建步骤参照4.3,点击“新建阶段新建任务”,选择Deploy部署,点击“添加”,选择调度任务,host_group,关联构建任务,点击“确定”。

等待执行成功(也可以在本地IDE中查看运行该流水线,请参照4.4)。

至此本次实验全部内容完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896118.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FastApi SQLAlchemy SQLite

FastApi fastapi是一个用于构建API 的现代、快速(高性能)的web框架,它是建立在Starlette和Pydantic基础上的。 Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库,Starlette是一种轻量级的ASGI框架/工具包&…

Qt编写的modbus模拟器/支持网络和串口以及websocket/支持网络rtu

一、使用说明 1.1 设备模拟-Com 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。第二步,填写对应的串口号和波特率。第三步,单击打开串口,成功后会变成关闭串口字样。单击…

智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革

随着科技的不断进步,智慧公厕厂家正以创新之力推动着城市公厕的智能化变革。 一、提升用户体验 智慧公厕为使用者带来了前所未有的便利。通过实时显示厕位使用情况,避免了旅客的无效排队,节省了时间。感应式设备如水龙头、洗手液等&#xff…

工业数据采集网关如何与设备进行连接?天拓四方

在工业自动化与智能化日益普及的今天,工业数据采集网关成为了连接各种工业设备与数据中心的桥梁。 一、工业数据采集网关的作用 工业数据采集网关,作为工业自动化系统的核心组成部分,负责实时采集、处理和传输来自各种工业设备的数据。它能…

RS232和RS485

文章目录 RS232和RS485编程与UART一摸一样RS232RS485 前情提要:UART的缺点 电气接口不统一 UART只是对信号的时序进行了定义,而未定义接口的电气特性 电压电平不兼容 UART通信中通常使用处理器的电平(如TTL电平),但不…

【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式

上篇文章: 【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年10月18日20点56分 文章目录 基本…

主键 外键

主键 外键 在关系型数据库中,主键(Primary Key)和外键(Foreign Key)是用于维护数据完整性和建立表之间关系的重要概念。 主键(Primary Key) 定义: 主键是一个或多个列的组合,其值能…

初始Python篇(4)—— 元组、字典

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 元组 相关概念 元组的创建与删除 元组的遍历 元组生成式 字典 相关概念 字典的创建与删除 字典的遍历与访问 字典…

Maple :一款强大的计算软件,广泛应用于数学、工程、物理和其他科学领域

Maple 是一款强大的计算软件,广泛应用于数学、工程、物理和其他科学领域。它以其符号计算、数值计算和图形可视化能力而闻名,适用于从基础到高级的数学问题。以下是对 Maple 的详细介绍: 1. 基本功能 符号计算 :Maple 能够处理复…

RBAC 模型

系统权限控制最常采用的访问控制模型就是 RBAC 模型 。 什么是 RBAC 呢? RBAC 即基于角色的权限访问控制(Role-Based Access Control)。这是一种通过角色关联权限,角色同时又关联用户的授权的方式。 简单地说:一个用…

鸿蒙网络编程系列7-TLS安全数据传输单向认证示例

1.TLS简介 TLS(Transport Layer Security)协议的前身是SSL(Secure Socket Layer)安全套接层协议,由Netscape公司于1994年提出,是一套网络通信安全协议。IETF(The Internet Engineering Task Fo…

ORACLE 19C安装 RAC报错

1. 问题描述 在Oracle 19C RAC的安装过程中,使用克隆方式在两个节点上部署集群。当第一个节点配置好基础服务后,关机并克隆节点。当尝试在第二个节点上通过页面进行RAC安装时,出现以下错误: [INS-32070] Could not remove the n…

Maven--简略

简介 Apache旗下的一款开源项目,用来进行项目构建,帮助开发者管理项目中的jar及jar包之间的依赖,还拥有项目编译、测试、打包的功能。 管理方式 统一建立一个jar仓库,把jar上传至统一的仓库,使用时,配置…

ArcGIS无插件加载(无偏移)在线天地图高清影像与街道地图指南

在地理信息系统(GIS)的应用中,加载高清影像与街道地图对于地图制图、影像查阅、空间数据分析等工作至关重要。天地图作为官方出品的地图服务,以其标准的数据、较快的影像更新速度等特点受到广泛欢迎。以下是如何在ArcGIS中无插件加…

【论文速读】Prompt Tuning:The Power of Scale for Parameter-Effificient Prompt Tuning

arxiv:2104.08691v2 摘要 在这项工作中,我们探索了“prompt tuning(提示调优)”,这是一种简单而有效的机制,用于学习“soft prompts(软提示)”,以条件下冻结的语言模型…

MATLAB智能算法 - AntColonyOptimization蚁群算法

AntColonyOptimization蚁群算法 智能算法是路线规划、深度学习等等一系列领域所使用的优化算法,是算法进阶之路的必备之路。 前言:本文主要围绕解决TSP旅行商问题展开,对于机器人的路线规划以及非线性方程求解的问题等解决方案 对于一些其他优…

leetcode289:生命游戏

根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 &am…

Nest.js 实战 (十四):如何获取客户端真实 IP

问题解析 在 Nest.js 应用中,当你试图通过 request.ip 获取客户端的 IP 地址时,如果总是返回 ::1 或者 ::ffff:127.0.0.1,这通常意味着请求来自本地主机。 因为在前后端分离应用中,前端请求后端服务一般的做法都是通过代理&…

springboot051医院管理系统(论文+源码)_kaic

医院管理系统 摘要 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求,创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系统的系统分析部分&#…