持续集成、持续交付、持续部署、Jkens、git

一  持续集成、持续交付、持续部署

    

       1. 持续集成

                  持续集成指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能

            保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集

            成。持续集成并不能消除 Bug,而是让它们非常容易发现和改正。

            它的好处主要有两个。

          (1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。

          (2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。

            与持续集成相关的,还有两个概念,分别是持续交付和持续部署。

       2. 持续交付

                  持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评

           审通过,代码就进入生产阶段。

                  持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。

       3. 持续部署

                  持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

                  持续部署的目标是:代码在任何时刻都是可部署的,可以进入生产阶段。

                  持续部署的前提是能自动化完成测试、构建、部署等步骤。它与持续交付的区别,可以参考下图。

                        

       4. 持续集成的流程

           根据持续集成的设计,代码从提交到生产,整个过程有以下几步。

         (1)提交

                  流程的第一步,是开发者向代码仓库提交代码。所有后面的步骤都始于本地代码的一次提交(commit)。

         (2)提交

                  代码仓库对 commit 操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试。

                  测试有好几种:

                 单元测试:针对函数或模块的测试

                 集成测试:针对整体产品的某个功能的测试,又称功能测试

                 端对端测试:从用户界面直达数据库的全链路测试

                 第一轮至少要跑单元测试。

         (2)构建

                         通过第一轮测试,代码就可以合并进主干,就算可以交付了。

                  交付后,就先进行构建(build),再进入第二轮测试。所谓构建,指的是将源码转换为可以运行的实际代码,比如

                  安装依赖,配置各种资源(样式表、JS 脚本、图片)等等。

                  常用的构建工具如下。

                  Jenkins

                  Travis

                  Codeship

                  Strider

                  Jenkins 和 Strider 是开源软件,Travis 和 Codeship 对于开源项目可以免费使用。它们都会将构建和测试,在一

                  次运行中执行完成。

         (3)测试(第二轮)

                         构建完成,就要进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建

                 步骤也要移到第一轮测试前面。

                         第二轮是全面测试,单元测试和集成测试都会跑,有条件的话,也要做端对端测试。所有测试以自动化为主,

                 少数无法自动化的测试用例,就要人工跑。

                 需要强调的是,新版本的每一个更新点都必须测试到。如果测试的覆盖率不高,进入后面的部署阶段后,很可能会

                 出现严重的问题。

         (4)部署

                         通过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包

                 ( tar filename.tar * )存档,发到生产服务器。生产服务器将打包文件,解包成本地的一个目录,再将运行路径的符

                号链接(symlink)指向这个目录,然后重新启动应用。这方面的部署工具有 Ansible,Chef,Puppet等。

         (5)构建

                         一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上

                  一个版本的目录。

 

转载于:https://www.cnblogs.com/jialanshun/p/10658891.html

Jenkins 自动化部署 背景:由于项目所涉及的环境比较多,因此采用Jenkins进行自动化部署,系统的部署方式是在各个服务器上有源码,在服务器上有拉取gitlab代码并且打包启动的脚本命令,用Jenkins自动化部署主要针对于测试和UAT环境 操作原理:当gitlab发生了merge事件后,触发Jenkins自动构建,并且远程调用服务器上的脚本命令,实现自动化部署 配置步骤如下: 前提条件:Jenkins所在的服务器上安装git、Jenkins、maven软件,安装完毕后进入Jenkins进行配置 第一步: 为Jenki 阅读详情

相关推荐

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1179

Jkenis自动化部署工具

1、背景:在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;或者前后端分离后,经常会修改接口,然后重新部署;这些情况都会涉及到频繁的打包部署;手动打包常规步骤:1.提交代码2.问一下同组小伙伴有没有要提交的代码3.拉取代码并打包(war包,或者jar包)4.上传到Linux服务器5.查看当前程序是否在运行6.关闭当前程序7.启动新的jar包8.观察日志看是否启动成功。

yshir 3290

MNE-python 进行源定位教程(一)配置环境

根据MNE官网提供的教程进行复现,遇到各种问题的记录。 配置环境 python3.8 + Anaconda + pycharm MNE-Python 是一个开源 Python 模块,用于处理、分析和可视化功能性神经影像数据(EEG、MEG、sEEG、ECoG 和 fNIRS)。 根据官方建议,将MNE-python安装在anaconda的虚拟环境中。 1. 安装Anaconda 过程点击这里 2. 配置pycharm 2.1 导入MNE-python工具包 在pycharm的菜单栏里打开VCS-Create

zQIANYUN的博客 3173

Jenkins部署spring boot项目

本文介绍使用Jenkins自动打包发布springboot项目,我们在没有使用持续集成工具的情况下,开发好的springboot项目,通过maven打包,上传jar包到服务器上,通过java-jar的形式启动项目;现在我们将这样的流程交给Jenkins去做,那么Jenkins需要负责更新最新的代码以及打包和发布服务,Jenkins需要有实现这些功能的插件和软件才能去完成这些任务,所以前提条件是安装Jenkins的机器上本身就有安装jdk、git、maven等软件,如果是centos系统可以参考。...

m0_67393686的博客 2246

从零开始:YOLOv8车牌检测模型训练全流程实战

本文详细介绍了从零开始训练YOLOv8车牌检测模型的全流程实战指南。内容涵盖环境搭建、数据集收集与标注、模型配置与训练、评估测试及高级优化技巧。通过使用预训练模型和迁移学习,开发者可以高效构建精准的车牌检测系统,并掌握模型导出与部署的关键步骤。

weixin_29061041的博客 335

Pyside6+qml+Qtcreator项目实战

PYTHON and QT QUICK - Custom Buttons With QML And JavaScript - [MODERN GUI]-#01

u014627020的博客 920

Android 自动化集成打包平台搭建之Jkens详解

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

4271

【制作100个unity游戏之22】3DRPG游戏开发01——项目的设置和导入及渲染管线的安装修复

如果你现在存在一些疑惑unity导入素材为什么是粉紫色的?表示他没有适配我们的URP通用渲染管线,要如何适配呢?素材渲染错误丢失要如何解决?如果你有上面3个任意的问题,那这篇文章同样适合你,我将手把手教你如何安装修复渲染管线,看完你就了解了!在Unity中,他们都是渲染管线,它们的主要区别在于性能和功能。LWRP是早期版本的URP,它专门为移动设备和低端PC设计,旨在提供更高的性能。它使用基于顶点的光照和简化的后处理效果,可以在更低的硬件要求下运行。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2429

Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)

前言本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目).打算用三个篇幅来记录完整的全过程觉得有帮助的朋友~...

dotNET跨平台 801

IDEA出现闪退或打不开的解决方法

本身项目比较大,为了打开这个软件,可调节IDEA中安装的bin目录下有个。打开IDEA的时候过一会便闪退,可以再IDEA的右下角看到如下提示。(如果没有该提示,软件右下角也会有个红色感叹号,点开查看原因即可)闪退的多数原因大致是out of memory,内存溢出。查看任务管理器中的进程:(发现内存随时有溢出的情况)但也需要注意,该参数并不是越大越好,适中即可。只有个别原因是需要管理员权限就可执行!可以尽量减少软件的启动。

码农研究僧的博客 5944

姿态传感器/陀螺仪之ICM-42670-P应用原理图设计

ICM-42670-P采用LGA-14封装,尺寸为2.5x3x0.76毫米,工作电压范围为1.71V至3.6V,支持I3CSM、I2C和SPI串行通信接口。其设计目标是提供高精度、低功耗和小型化的解决方案,以满足消费类和工业应用的需求。ICM-42670-P是一款由TDK InvenSense推出的高性能六轴MEMS运动追踪传感器,集成了3轴陀螺仪和3轴加速度计,适用于多种应用场景,包括可穿戴设备、游戏控制器、无人机、AR/VR设备等。

corlin6688的博客 1206

jenkins自动化部署详解

git:centos可以yum安装maven:开发、测试、生产所有的环境版本要保持一致,到国内镜像或官网下载zip版本,使用时直接解压,配环境变量jenkins:war包方式运行,不同版本的jenkins对应的java版本是不同的,参考官网说明。

qq_15325579的博客 1813

从零开始跑通3DGS教程:(四)修改(缩放、空间变换)colmap生成的sfm结果

通过colmap进行的sfm的普通方式会丢失场景的物理尺度信息,并且并不在符合一般认知的坐标系下,本文将读取colmap生成的点云和相机pose,将其进行空间变换和缩放之后,重新保存,新保存的结果仍然可以被colmap读取以及进行后续的稠密重建以及3dgs等工作

诺有缸的高飞鸟的博客 1424

Jenkins自动打包部署——前端入门,Jenkins解读,Jenkins机器人

codding配置jenkins自动构建

weixin_45629623的博客 4229

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Mac docker部署jenkins,在jenkins上运行自动化代码

一、docker部署jenkins docker run -d -p 7000:8080 --name py42jenkins -u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine 部署成功图下图: 二、查看Jenkins是否启动 执行命令:docker ps -a 三、浏览器中访问 通过7000端口 http://localhost:70

familyyan的博客 3630

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Jenkins安装及测试

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于 监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以 进行(持续集成)

qq_62608242的博客 319

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Jenkins教程

是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的容器中运行,也可独立运行。持续、自动地构建/测试软件项目。监控软件开发流程,快速问题定位及处理,提高开发效率。jekins特性:① 开源的java语言开发持续集成工具,支持CI,CD。② 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。

weixin_45981509的博客 468

一文教你分清持续集成,持续交付,持续部署!

1、持续集成 首先是 WiKi 给出的定义: continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. 持续集成的含义为:频繁的(一天多次的)将所有开发者的工作合并到主干上。 以图例说明持续集成的流程: 从图例上来看持续集成的流程就十分清晰了: 开发人员提交代码到 Source Repository (源..

人生不怕起点低,就怕没追求 1054

Jenkins入门与使用 (一) Jenkins介绍与安装

文章目录一、Jenkins 介绍二、Jenkins 特性三、CI/CD 介绍四、Jenkins 安装1、下载Jenkins的war包2、使用tomcat容器运行Jenkins war包3、访问Jenkins4、解锁Jenkins 一、Jenkins 介绍   Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson (Hudson是商用的) ,主要用于持续、自动的构...

浅末年华的博客 2362

jinkens安装配置


      Jenkins安装配置 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。 首先保证系统中已经安装了jdk 官网下载地址:http://mirro...

对雪书空武 1780

Jenkins入门,安装,配置

什么是Jenkins? 我的理解就是一个容器,这个容器会帮你来进行代码的管理,通过插件的形式将email,webhook等一些内容集成进来。来做自动化部署,省去人工部署的过程。 为什么用Jenkins? 现在云服务器越来越方便,使用的人也越来越多。springboot和springcloud也用的人越来越多,项目往往是以jar包的形式来部署,通过systemd 将jar当做服务来发布。这个时...

程序员XW 332

jenkins配置与项目简单部署

1、环境配置 该文章运用主要软件有,GIt,Maven,Java, 1)下载jinkins yum install wget wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war 启动jenkins.war 并且设置端口,并且将日志保存 然后在进入页面http://虚拟机ip:8777/Jenkins(记得添加开放端口或者关闭 老爷爷跑的慢T.T等等哦 老爷爷跑的慢但还是很贴心的 在虚拟机中可以找到对应的密码 ..

大鱼 412

jenkins详细安装教程

Jenkins是一个广泛用于持续集成的可视化web自动化工具,Jenkins可以很友好的支持各种语言的项目构建,也可以完全兼容ant maven、gradle等多种第三方构建工具,同时跟svn git能无缝集成,也支持直接与知名源代码托管网站,比如 github、bitbucket直接集成,而且插件众多,在这么多年的"技术积累之后,在国内大部分公司都有使用Jenkins。Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具。主要做的事情就是从git中拉取代码,根据配置信息打包;

凡尘 1万+

Linux安装Jenkins

https://www.cnblogs.com/fuzongle/p/12834080.html

qq_15009805的博客 412

Jenkins部署java

一、编译环境====(jenkins服务器) 1.部署maven编译环境(在Jenkins服务器上部署) 1.下载maven [root@jenkins opt]# wget https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz [root@jenkins opt]# ll 总用量 563300 -rw-r--r-- 1 root root 9506321 7月 3

weixin_46837396的博客 511
上一篇: REST
下一篇: SpringCloud与Docker微服务架构实战笔记
anshuo7139
博客等级 码龄10年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值