CI/CD介绍以及jenkins安装 1.1
一 。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

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了