首页 > 其他分享 >1.2 Jenkins简介

1.2 Jenkins简介

时间:2024-07-09 13:08:12浏览次数:18  
标签:1.2 部署 简介 代码 Hudson 构建 jenkins Jenkins

简单介绍

Jenkinsopen in new window前身是Hudson,Jenkins是一款开源 CI&CD 软件,基于Java开发,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

Jenkins 项目产生两个发行线, 长期支持版本 (LTS) 和每周更新版本, 两个版本都以 .war 文件, 原生包, 安装程序, 和 Docker 容器的形式分发。

官网:https://jenkins.io/

代码仓库:https://github.com/jenkinsci/jenkins

发展历史

  • Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。
  • Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。
  • 2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。
  • 在2008年的JavaOne大会上在开发者解决方案中获得杜克选择大奖(Duke’s Choice Award)。
  • 在2010年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。主要的项目贡献者和Oracle之间, 尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。
  • 甲骨文在2010年12月声明拥有该名称并申请商标的权利。因此,2011年1月11日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。
  • 2011年1月29日,该建议得到社区投票的批准,创建了Jenkins项目。
  • 2011年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。
  • 到2013年12月,GitHub上的Jenkins拥有567个项目成员和约1,100个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。到现在两者的差异更多,应该说Jenkins已经全面超越了Hudson。此外,大家可能是出于讨厌Oracle的情绪,作为Java开发者天然地应该支持和使用Jenkins。

特点

img

img

  • 易于安装,只要把jenkins.war部署到servlet容器,不需要数据库支持
  • 易于配置,所有配置都是通过其提供的web界面实现
  • 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知
  • 生成JUnit/TestNG测试报告
  • 分布式构建支持Jenkins能够让多台计算机一起构建/测试
  • 支持多种扩展插件,你可以开发适合自己团队使用的工具
  • 支持pipeline流水线,可以用代码描述配置过程,方便使用

应用场景

  • 集成svn/git客户端实现源代码下载检出
  • 集成maven/ant/gradle/npm等构建工具实现源码编译打包单元测试
  • 集成sonarqube对源代码进行质量检查(坏味道、复杂度、新增bug等)
  • 集成SaltStack/Ansible实现自动化部署发布
  • 集成Jmeter/Soar/Kubernetes/…..
  • 可以自定义插件或者脚本通过jenkins传参运行
  • 可以说Jenkins比较灵活插件资源丰富,日常运维工作都可以自动化

三种构建方式

  • jenkins 触发式构建:用于开发环境部署,开发人员push代码或者合并代码到gitlab项目的master分支,jenkins就部署代码到对应服务器。

  • jenkins 参数化构建:用于测试环境预上线环境部署,开发push代码或者合并代码到gitlab项目的master分支之后,并不会部署代码,而是需要登录到jenkins的web界面,点击构建按钮,传入对应的参数(比如参数需要构建的tag,需要部署的分支)然后才会部署。

  • jenkins 定时构建:用于APP自动打包,定时构建是在参数化构建的基础上添加的,开发人员可以登录jenkins手动传入tag进行打包,如果不手动打包,那么jenkins就每天凌晨从gitlab拉取最新的APP代码打包。

 

标签:1.2,部署,简介,代码,Hudson,构建,jenkins,Jenkins
From: https://www.cnblogs.com/david-cloud/p/18291585

相关文章

  • 编译安装Kubernetes 1.29 高可用集群(8)--Dashboard和Traefik安装部署
    1.部署Dashboard1.1在任意k8s-master节点上安装dashboard#helmrepoaddkubernetes-dashboardhttps://kubernetes.github.io/dashboard/#helmupgrade--installkubernetes-dashboardkubernetes-dashboard/kubernetes-dashboard--create-namespace--namespacekuberne......
  • Mysql中存储引擎简介、修改、查询、选择
    场景数据库存储引擎数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据的操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。现在许多数据库管理系统支持多种数据引......
  • Open-Sora1.2环境搭建&推理测试
    ​引子前阵子写了一篇Open-Sora1.0环境搭建&推理测试(Open-Sora1.0环境搭建&推理测试_自己搭建sora服务-CSDN博客,感兴趣的童鞋,请移步)。Open-Sora1.1发布的时候,撇了一眼新闻。后面一转头,忘记这个事情了。无意间翻到其开源网站上,发现2024.6.17发布1.2版本了,那还是过来看看有什么长足......
  • STM32标准库函数功能简介————GPIO篇
    1.void GPIO_DeInit (GPIO_TypeDef*GPIOx);函数解释:将指定的GPIO端口恢复到默认设置。2.voidGPIO_AFIODeInit(void);函数解释:将外设映射设置恢复为默认状态,以重新初始化外设映射配置。3.voidGPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct);函数......
  • STM32简介
    STM32简介一、单片机单片机(MicrocontrollerUnit,MCU)是一种集成电路芯片,它将微处理器(CPU)、存储器(如RAM和ROM)、输入/输出接口(I/O)、定时器、中断系统、通讯接口等电脑常用硬件功能集成在单一的硅片上,形成一个微型的计算机系统。单片机的任务是采集信息(依靠传感器)、处理信息(依......
  • 目标检测算法简介
    关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可......
  • GraalVM简介及使用
    在本文中,我们将回顾GraalVM是什么、它是如何工作的,以及即时(JIT)编译和提前(AOT)编译之间的区别?GraalVM是一种高性能运行时,为用Java和其他语言编写的应用程序提供了显着的优势。它由Oracle开发,通过利用高级优化和独特的架构,可以更快、更高效地运行应用程序。1.......
  • webservice简介
    1、简介webservice即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术。实现不同系统,进程间,任何地点的数据交换,webservice是跨语言技术。webservice是基于HTTP与XML的技术。采用标准SOAP(SimpleObjectAccessProtocol)协议传输,soap属于W3C标准。Soap协议是基于htt......
  • 前端学习-flutter学习-003-Widget 简介
    学习链接什么是widget描述UI元素的配置信息Widget类本身是一个抽象类,其中最核心的就是定义了createElement()接口,在Flutter开发中,我们一般都不用直接继承Widget类来实现一个新组件,相反,我们通常会通过继承StatelessWidget或StatefulWidget来间接继承widget类来实现。Stateless......
  • Keepalived简介
            目前互联网主流的实现WEB网站及数据库服务高可用软件包括:keepalived、heartbeat等。Heartbeat是比较早期的实现高可用软件,而keepalived是目前轻量级的管理方便、易用的高可用软件解决方案,得到众多青睐。         Keepalived是一个类似于工作在layer......