CI/CD介绍以及jenkins安装 1.1
2024-09-02 13:12:14
一 。CI/CD介绍
互联网软件开发和发布,形成了一套流程标准,分为几个阶段:编码,构建,集成,测试,交付,部署
持续集成(continuous integration)、持续交付(continuous delivery)、持续部署(continuous deployment) 有着不同的软件自动化交付周期
1)持续集成(CI)
上面整个流程中最重要的组成部分就是持续集成(Continuous integration,简称CI)。
编码 → 构建 → 集成 → 测试
持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
它的好处主要有两个:
1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;
2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
持续集成并不能消除Bug,而是让它们非常容易发现和改正。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
2)持续交付
持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。
持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上。 持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。
3)持续部署(CD)
持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。 持续部署的前提是能自动化完成测试、构建、部署等步骤。
总的来说,持续集成、持续交付、持续部署提供了一个优秀的 DevOps 环境。对于整个开发团队来说,能很大地提升开发效率。
二 jenkens 介绍与安装
1)Jenkins基础介绍
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,官网:https://jenkins.io/
(2)jenkins安装,需要先安装jdk or JRE 然后执行jenkins.war文件
上传jdk和jenkins.war文件
[root@hd2 ~]# rpm -ivh jdk-8u301-linux-x64.rpm #安装运行java所需要的jdk软件
[root@hd2 ~]# vi /etc/profile #配置java运行的全局环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_301-amd64 #插入如下配置
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/fre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HMOE/jre/bin:$PATH
[root@hd2 ~]# source /etc/profile #环境变量重启
[root@hd2 ~]# java -version #查看java版本
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
java -jar jenkins.war #进入上传的jenkins文件所在目录执行java -jar +war文件,来启动jenkins
(3)去浏览器输入本机ip地址,密码在启动jenkins最后时候有个password如果找不到就去这文件下找,/root/.jenkins/secrets/initialAdminPassword
最新文章
- app推送中的通知和消息区别
- WPF GDI+ bitmap.save 一般性错误
- Android带多选功能的PhotoPicker
- Delphi中nil和null的区别
- quartz的触发器CronTriggerBean 配置
- bzoj 3531 [Sdoi2014]旅行(树链剖分,线段树)
- HDFS Users Guide--官方文档
- JS的substr与substring的区别
- HDU3415:Max Sum of Max-K-sub-sequence(单调队列)
- Js内存泄露问题总结
- R语言笔记4--可视化
- 设计模式--代理模式(C++版)
- MySQL--当mysqldump --single-transaction遇到alter table(2)
- 关于spring的aop拦截的问题 protected方法代理问题
- 工厂模式的进阶复习(Factory)
- [dev] 刷HHKP的一般流程及常见错误(多图慎点)
- JsonPath如何获取JSON数据中的值
- 部署一个不依赖tomcat容器的应用
- 【maven】之打包不带版本号的问题
- Django的学习(六)————templates过滤器、Django shell、admin