git+jenkins
开发写代码的演变
- 一个开发单打独斗,撸代码,开发网站,自由自在
- 多个开发同时开发一个网站,同时改一份代码。但是同时改一个文件会导致冲突
- 分支结构,每天上班第一件事克隆代码,下班前最后一件事合并代码
- 好景不长,开发越来越多,代码文件越来越多。每天下班前合并代码时,发现很多合并失败的文件。最后每天加班三小时人工合并代码。
- 解决方法:将合并代码的周期缩短,以前一天,现在一小时,半小时。。。
- 随时随地将代码合并,这种方法叫做持续集成。
持续集成
- 持续集成(CONTINUOUS INTEGRATION,简称CI)
- 持续集成指的是:频繁地(一天多次)将代码集成到主干。
- 它的处理好处主要有两个
- 快速发现错误。每完成一点更新,就集成到主干。可以快速发现错误,定位错误也比较容易。
- 防止分支大幅度偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,升值难以集成。
运维上线代码的演变
- 初级运维很苦逼,刚开始开发每天合并一次代码,然后运维把代码pull下来测试就可以了。
- 但是,后来开发引进了持续集成的方法论,开发们都“弹冠相庆”。
- 运维同学感觉好苦逼,一天到晚不停的测试代码
- 每天下班之后,运维拖着疲倦的身子回到宿舍,就想,有没有办法自动化?
- 初级运维请教了传说中的大神,知道了一种方法。
- 借助一个自动化的部署工具,叫JENKINS
- 开发上传自己的代码到gitlab,gitlab发消息通知JENKINS,随后JENKINS从仓库拉取代码,然后全自动部署到测试服务器进行测试,并将测试结果通知运维和开发。
- 还有偷懒的方法,直接把这个工具交给开发使用,从此就可以高枕无忧了
- 这种自动测试的方法叫做“持续交付”
持续交付
- 持续交付(CONTINUOUS DELIVERY)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段
- 持续交付可以看做持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
运维上线代码的演变
- 代码测试通过了,该到生产环境部署了,运维又该干活了
- 其实这是一锤子买卖了,要么成功,要么是吧回滚。
- 可以使用自动部署工具,但是很多公司还是相信人工上线。
- 但是我们还有偷懒的方法,比如:ANSIBLE,SALTSTACK
- 这里也有个方法叫:持续部署。
持续部署
- 持续部署(CONTINUOUS DEPLOYMENT)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
- 持续部署的目标是,代码在任何时刻都是可以部署的,可以进入生产阶段。
行话:CI/CD - > 持续集成/持续交付/持续部署
JENKINS介绍
- JENKINS是一个用JAVA编写的开源的持续集成工具。在与ORACLE发生争执后,项目从HUDSON项目独立了。
- JENKINS提供了软件开发的持续集成服务。它运行在Servlet容器中。它支持软件配置管理(SCM)工具,可以执行基于APACHE ANT,和APACHE MAVEM的项目,以及任意的shell脚本和Windows批处理命令,JEKINS的主要开发者是川口耕介。JENKINS是在MIT许可证下发布的自由软件。
安装JENKINS
环境准备
准备两台安装好centos系统的虚拟机,内存1G+
所有虚拟机的防火墙和SELINUX
主机名和IP地址关系如下:
JENKINS 10 10.0。0.22
Gitlab 10.0.0.201 4. Linux能发送邮件账户
常规安装方法:使用rpm包安装
RPM包下载地址:
http://pkg.jenkins.io/redhat-stable/
清华源地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
# yum安装jdk
yum -y install java-1.8.-openjdk java-1.8.-openjdk-devel
# 安装rpm包
rpm -ivh jenkins-2.73.-1.1.noarch.rpm
# 启动
/etc/init.d/jenkins start
离线安装方法:
使用三个软件包
jenkins_yum.tar.gz # 所有依赖包的缓存文件
jenkins-2.73.-1.1.noarch.rpm # jenkins安装包
jenkins_plugins.tar.gz # jenkins常用插件
步骤:
tar xfP jenkins_yum.tar.gz
yum -C --nogpgcheck install java-1.8.-openjdk java-1.8.-openjdk-devel
rpm -ivh jenkins-2.73.-1.1.noarch.rpm
/etc/init.d/jenkins star
JENKINS的使用
步骤1:安装插件离线包
tar xfP jenkins_plugins.tar.gz
/etc/init.d/jenkins restart
注:Jenkins插件目录/var/lib/jenkins/plugins/
步骤2:查看rpm安装目录
rpm -ql jenkins
步骤3:配置并发执行任务数量
步骤4:邮件配置(系统管理->系统设置)
git+jenkins的更多相关文章
- GIt+jenkins代码自动上线
代码自动上线功能 企业部署代码上线是件比较麻烦的事情,还好我们有jenkins这个持续集成的软件可以帮助我们做很多的事情,现在我们就 来测试用jenkins推送代码上线. 我们这里测试的是一个html ...
- git jenkins 基本部署
git jenkins 本地仓库基础 1.安装git [root@gitlab ~]# yum install git -y 2.配置git [root@gitlab ~]# git config ...
- Postman+Newman+Git+Jenkins接口自动化测试
一.Postman 1.创建Collection,在Collection中创建接口请求,如下图所示. 2.编写接口对应的断言Test和Pre-request Script,如下图所示. 3.配置接口 ...
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...
- 【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目
一.持续集成 1.1 什么是持续集成? continuous integration (CI),持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员,每天至少集成一次,也就意味着 ...
- Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins
本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存 ...
- Git+Jenkins+FileGee 发布php应用
Git:做版本控制,回滚版本(coding.net) Jenkins:代码下载,提供webhook url FileGee:同步代码(一个国产同步.备份软件非常强大,而且便宜企业版只要498) jen ...
- git+jenkins在windows机器上新建一个slave节点【转载】
转至博客:上海-悠悠 前言 我们在跑自动化项目的时候,希望有单独的测试机能跑自动化项目,并且能集成到jenkins上构建任务.如果公司已经有jenkins环境了,那无需重新搭建. 只需在现有的平台基础 ...
- TestNG+ReportNG+IDEA+Git+Jenkins+surefire持续集成数据驱动dubbo接口测试
一.pom.xml增加testng相关配置 <!--添加插件 关联testNg.xml--><plugin> <groupId>org.apache.maven.p ...
- centos7.4下搭建JDK+Tomcat+Nginx+Mysql+redis+Mongodb+maven+Git+Jenkins
先干两件大事!先干两件大事!先干两件大事! 1.关闭selinux [root@mycentos ~]# vi /etc/selinux/config SELINUX=disabled 2.关闭防火墙 ...
随机推荐
- 【bzoj2085】[Poi2010]Hamsters Hash+倍增Floyd
题目描述 Tz养了一群仓鼠,他们都有英文小写的名字,现在Tz想用一个字母序列来表示他们的名字,只要他们的名字是字母序列中的一个子串就算,出现多次可以重复计算.现在Tz想好了要出现多少个名字,请你求出最 ...
- 【bzoj2724】[Violet 6]蒲公英 分块+STL-vector
题目描述 输入 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 输出 样例输入 6 3 1 2 3 2 1 2 1 5 3 ...
- BZOJ 4868 [Shoi2017]期末考试 ——三分 枚举
考场上xjb三分过掉了. 然后$sdfzyhx$.$silvernebula$ $O(n)$虐掉了. 我还是太菜了 #include <cstdio> #include <cmath ...
- BZOJ2653 middle 【二分 + 主席树】
题目 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整.给你一个 长度为n的序列s.回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c ...
- APUE 学习笔记(五) 进程环境
1.main函数 C程序总是从main函数开始执行,当内核执行C程序时,在调用main函数之前先调用exec函数从内核获取命令行参数和环境变量值 2.进程终止 正常终止: (1)在main函数内执 ...
- 你如果知道这些css常用命名,绝对事半功倍!--摘抄
对于布局,即用.g-作为前缀,通常有以下推荐的写法 对于模块,即.m-作为前缀.元件,.u-作为前缀,通常有下面推荐的写法. 对于功能,即以.f-为前缀,通常推荐如下: 对于颜色,即以.s-为前缀,通 ...
- eclipse 的SVN安装
打开eclipse -> Help ->Install New Software选项, 点击Add按钮 根据需要,添加自己需要的版本svn控制器的版本,填写name和url,点击ok. ...
- 《Linux命令行与shell脚本编程大全 第3版》
第一部分 Linux 命令行 第1章 初识Linux she1.1 什么是Linux 21.1.1 深入探究Linux 内核 31.1.2 GNU 工具 61.1.3 Linux 桌面环境 81 ...
- C# Array类的浅复制Clone()与Copy()的区别
1 Array.Clone方法 命名空间:System 程序集:mscorlib 语法: public Object Clone() Array的浅表副本仅复制Array的元素,无论他们是引用类型还是 ...
- hdu 5690(模运算)
All X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...