第七章:敏捷开发工具方法-part2-CI/CD工具介绍

这篇具有很好参考价值的文章主要介绍了第七章:敏捷开发工具方法-part2-CI/CD工具介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

什么是CI/Cd?

CI-Continuous integration持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代吗行合并到一起并切相互不影响工作。
CD-continuous deployment持续部署是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率。
Continuous Delivery: 持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现。

  • 持续交付并不是指软件每一个改动都要尽快的部署到产品环境中。它指的是任何的修改都已证明可以在任何时候实施部署。 持续
  • 交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动的提交到测试环境中,所以当业务开发完成时,你有信心只需要按一次按钮就能将应用安全的部署到产品环境中。

特点:

  • 通常将侧重研发侧的过程称为CI(持续集成),侧重正式环境部署的过程称为CD(持续交付)
  • 一般不单独提持续部署(ContinuousDeployment)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

主要工具:

  • 代码仓库:Git进行管理;静态检查;Sonar集成
  • 单元测试:Junit;单测覆盖率
  • JaCoCo插件;编译打包;
  • 集成部署: she11脚本/服务接口;
  • 自动化测试:RobotFrameWork,
  • 自动化测试平台;CI报告;Sonar。
  • Gitlab+Jenkins+SonarQube+阿里EDAS平台+RF自动化测试套件等.

第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

一、CI-持续集成

Martin Flowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建 (包括编译,部署,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

常用工具:

  • 代码管理:gitlab(企业自建),gitee(企业租户形式使用)
  • 持续集成:jenkins

1.1 安装部署gitlab

  • 官网:官网,中文官网
  • 注意:建议安装的gitlab在虚拟机中至少给到2G以上内存,不然可能会安装不成功,卡在某个地方报错
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
    1、下载镜像
    由于官网镜像太慢,所以在国内开源镜像站中查找。如:清华大学开源软件镜像站
  • 搜索gitlab镜像(目前使用社区版),下载最新。镜像列表地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

2、登录服务器,下载镜像

# 下载
wget https://mirrors.tuna.tsingua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.9.4-ce..el7.x864.rpm
# 安装邮件服务postfix(gitlab依赖)
yum install postfix
# 启动邮件服务
systemctl start postfix
# 安装gitlab
rpm -ivh gitlab-ce-14.9.4-ce.0.el7.x86_64.rpm

3、安装完成后,根据提示设置访问地址
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

# 修改添加gitlab的访问地址
vim /etc/gitlab/gitlab.rb
# 进入gitlab.rb编辑内容中后-----
external_url 'http://192.168.xx.xx:8000'
# :wq 保存并退出编辑----- ip试自身环境定
# 开放端口号
firewall-cmd --permanent --zone=public --add-port=8000/tcp
# 重启防火墙
firewall-cmd --reload
# 查看当前开放端口
firewall-cmd --list-ports
# 重置gitla
gitlab-ctl reconfigure
# 重启gitlab服务
gitlab-ctl restart

4、重启完成后,根据external_url访问gitlab

  • 当遇到502时,可以尝试多刷新几次
  • 如果一直无法访问,就通过gitlab-ctl status查看运行状态
  • 登录默认为root,初始密码默认在/etc/gitlab/initial_root_password中查看,登录gitlab后自定设置
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

二、gitlab CI配置

本节假设已建立一个vue3-vite项目的仓库,并在项目根目录新建.gitlab-ci.yml

  • gitlab-ci配置的保留字:image(使用docker image),services(使用docker service),stages(定义工作阶段),types(stage的别名),before_script(在工作任务执行前执行的脚本命令),after_script(在任务执行结束后执行的脚本命令),variables(定义变量)
  • 配置文件示例
# stages:是保留字,用于定义工程执行的阶段
stages:
    - build
    - deploy
# build_job: job名称,可以自定义    
build_job:
    stage: build
    script: 
    	- 'echo "start build"'
    	- 'echo "多行输出"'
    
deploy_job:
    stage: deploy
    script: 'echo "start deploy"'
  • 以上只是简单的gitlab-ci配置,而要构建gitlab流水线,需要搭配使用runner,runner的安装一般由管理员部署实现,这里略过了。

三、jenkins实现CI / CD

官网地址, jenkins中文网

第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

3.1 安装jenkins

以centos系统安装为例,官网参考:https://pkg.jenkins.io/redhat-stable/

  • 注意:jenkins依赖于java,所以需要先安装java jdk
  • 根据官网文档要求,在对应服务器上下载java及jinkins安装包
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
# 安装(已下载jenkins-2.332.3-1.1.noarch.rpm安装包
rpm -ivh jenkins-2.332.3-1.1.noarch.rpm
# 查看jenkins配置文件
vim /etc/init.d/jenkins
# 修改配置(端口或USER,视情况定)
vim /etc/sysconfig/jenkins
# 启动jenkins(首次启动较慢,可能需要四五分钟)
service jenkins start
# 获取初始密码
tail /var/lib/jenkins/secrets/initialAdminPassword

解锁jenkins获取初始密码
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

  • 首次启动会推荐安装插件,但安装会耗时很久,所以建议不安装推荐插件,点击“选择插件来安装”后,不勾选插件从而进入下一步。
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

  • 创建管理员用户
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

  • 配置实例(默认不改就好)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

进入系统后,显示欢迎页:
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

  • 添加中文插件(Manage Jenkins左侧菜单——》Manage Plugins——》available标签页)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

3.2 配置CI

1、创建新任务并命名
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
2、关联gitlab仓库
此处需要先安装git插件
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
在jenkins安装对应服务器上安装git

# 安装
yum install -y git
# 测试安装是否完成
git --version
  • 配置源码管理
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
  • 添加凭据,向下选择是否切换分支
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
  • 点击构建,测试是否成功
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

/var/lib/jenkins/workspace是jenkins的默认工作目录,在里面可以看到上一步构建拉取到的项目文件

  • 新增构建步骤(进入上一步新建任务的配置中)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
  • 配置shell
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

3.3 配置CD

1、基于上一步的执行shell脚本中,继续添加shell

  • jenkins的默认工作路径为/var/lib/jenkins/workspace/DemoTest,但不排除有时不是这个路径,所以可以使用jenkins环境变量的方式来直接进入。
  • 项目工程工作路径目录环境变量: $WORKSPACE(Linux环境中),如jenkins安装在windows系统下,则是%变量名%的形式
cd $WORKSPACE
# 安装依赖
npm install
# 打包
npm run build
# 进入打包后目录
cd dist
# 压缩前先删除已有压缩包
rm -f demotest.tar.gz
# 压缩所有文件
tar -zcvf demotest.tar.gz *
# 查看dist目录
ll

第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
2、将上一步的压缩包,传到nginx服务器
- 先安装 publish over ssh插件(用于推送压缩包)
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

  • 配置Publish Over ssh (对应nginx服务根目录)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
  • 添加构建后操作
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
  • 添加构建后操作配置(注意:对应nginx服务器上已创建demotest文件夹的前提下,且配置了nginx对demotest路径的配置)
    第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

3.4 其他构建方式

1、定时构建

1、打开demotest任务的配置,切到构建触发器
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

2、指定参数构建

1、安装git parameter插件
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
2、修改任务配置——勾选“参数化构建过程”
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
3、添加Git参数配置
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
4、修改“源码管理”处的指定分支
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
5、查看可用构建的标签和分支(选中后,点击开始构建即可)
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

3、webhook自动根据git事件进行构建

1、添加插件
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab

2、打开demotest配置(在安装gitlab插件后,会新增一个构建触发器选项如下)
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
3、到gitlab中配置出站请求(gitlab群组管理中设置)
设置——》网络——》出站请求
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
4、设置webhooks(对应代码仓库中设置)
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab
5、测试push event
第七章:敏捷开发工具方法-part2-CI/CD工具介绍,持续集成,持续部署,jenkins,CI/CD,gitlab文章来源地址https://www.toymoban.com/news/detail-703722.html

到了这里,关于第七章:敏捷开发工具方法-part2-CI/CD工具介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go 笔记 第七章 golang 的函数 func 方法

    声明函数 func 函数名(入参1 类型, 入参2 类型,… )(出参1 类型, 出参2 类型…){ 函数体,写逻辑 出参一定要全部 return, return 出参 } 函数内部不可以声明带名字的函数,可以声明匿名函数和自执行函数 函数名大写可以被其他包调用,小写私有,变量名也是一样 return 后面可以不

    2024年02月15日
    浏览(27)
  • 人工智能 :一种现代的方法 第七章 逻辑智能体

    本文旨在讲清楚: KBA(knowledge based agent)与逻辑 模型,有效性,可满足性,蕴含,推理过程 如何证明KB蕴含a(模型检验,逻辑等价,推理规则) 基于命题逻辑的Agent如何工作的 7.1 基于知识的智能体 基于知识的系统 基于知识的Agent的核心部件是其知识库,或称KB。 知识库

    2024年01月22日
    浏览(32)
  • OBCP第七章 OB迁移-备份恢复技术架构及操作方法

    为什么需要备份恢复 为满足监管要求 防止管理员误操作后,错误数据同步到所有副本,导致数据无法恢复 防止数据库因各种故障而造成数据丢失,降低灾难性数据丢失的风险,从而达到灾难恢复的目的 硬盘驱动器损坏 黑客攻击、病毒 自然灾害、电源浪涌、磁干扰 物理备份

    2023年04月08日
    浏览(31)
  • Qt5开发及实例V2.0-第七章-Qt图形视图框架

    7.1.1 Graphics View的特点 Graphics View框架结构的主要特点如下。 (1)Graphics View框架结构中,系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能。 (2)Graphics View支持事件传播体系结构,可以使图元在场景(scene)中的交互能力提高1倍,图元能够处理键盘事件和鼠标事

    2024年02月07日
    浏览(30)
  • 第七章 图论

    第七章 图论 一、数据结构定义 图的邻接矩阵存储法 图的邻接表存储法 把所有节点存储为节点数组,每个节点里有自己的数据和一个边指针,这个边指针相当于一个链表的头指针,这个链表里存放所有与这个节点相连的边,边里存放该边指向的节点编号和下一条边指针 图的

    2024年02月14日
    浏览(35)
  • 第七章 函数矩阵

    和矩阵函数不同的是,函数矩阵本质上是一个矩阵,是以函数作为元素的矩阵。 矩阵函数本质上是一个矩阵,是以矩阵作为自变量的函数。 函数矩阵和数字矩阵的运算法则完全相同。 不过矩阵的元素 a i j ( x ) a_{ij}(x) a ij ​ ( x ) 需要是闭区间 [ a , b ] [a,b] [ a , b ] 上的实函数

    2024年02月04日
    浏览(33)
  • 第七章金融中介

             金融中介是通过向资金盈余者发行 间接融资合约( 如存款单),并和资金短缺者达成 间接投资合约 (发放信贷)或购买其发行的证券,在资金供求方之间融通资金,对资金跨期、跨域进行优化配置的金融机构。         金融体系由金融市场和金融中介构成,以银行业为

    2024年02月04日
    浏览(35)
  • 第七章 测试

    7.1.1 选择程序设计语言 1. 计算机程序设计语言基本上可以分为汇编语言和高级语言 2. 从应用特点看,高级语言可分为基础语言、结构化语言、专用语言 01 有理想的模块化机制; 02 可读性好的控制结构和数据结构; 03 便于调试和提高软件可靠性; 04 编译程序发现程序错误的

    2024年02月08日
    浏览(43)
  • python第七章(字典)

    一。字典(类型为dict)的特点: 1.符号为大括号 2.数据为键值对形式出现 3.各个键值对之间以逗号隔开 格式:str1={\\\'name\\\':\\\'Tom\\\'}  name相当于键值(key),Tom相当于值 二。空字典的创建方法 三。字典的基本操作(增删改查) 1.字典的增加操作:字典序列[key] = 值 注意点:如果存

    2024年01月24日
    浏览(39)
  • 数据结构第七章

    图(Graph)G由两个集合V和E组成,记为G=(V, E),其中V是顶点的有穷非空集合,E是V中顶点偶对的有穷集合,这些顶点偶对称为边。V(G)和E(G)通常分别表示图G的顶点集合和边集合,E(G)可以为空集。若EG)为空,则图G只有顶点而没有边。 子图:假设有两个图G=(V,E)和G1=(V1,E1);如果V1

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包