热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins教程:使用Jenkins进行持续集成

【注】本文译自:https:www.edureka.coblogjenkins-tutorial本文将重点介绍Jenkins架构和Jenkins构建管道,并向您展示如何在Jenki

【注】本文译自:
https://www.edureka.co/blog/jenkins-tutorial/

  本文将重点介绍 Jenkins 架构和 Jenkins 构建管道,并向您展示如何在 Jenkins 中创建一个构建。
  现在是了解 Jenkins 架构的正确时机。

Jenkins 架构

  让我们修改一下我在上一个博客中向您解释的独立 Jenkins 架构,下图描绘了相同的架构。

  单台 Jenkins 服务器不足以满足某些要求,例如:

  • 有时您可能需要几个不同的环境来测试您的构建。单个 Jenkins 服务器无法完成此操作。
  • 如果定期构建更大、更重的项目,则单个 Jenkins 服务器将无法简单地处理整个负载。
      为了满足上述需求,引入了 Jenkins 分布式架构。

Jenkins 分布式架构

  Jenkins使用主从架构管理分布式构建。在这种架构中,主站和从站通过 TCP / IP 协议进行通信。

Jenkins 主节点

  您的主要 Jenkins 服务器是主节点。主节点的工作是处理:

  • 调度构建作业。
  • 将构建分派给实际执行的从节点。
  • 监视从节点(可能根据需要使它们联机和脱机)。
  • 记录并显示构建结果。
  • Jenkins 的主节点也可以直接执行构建作业。

Jenkins 从节点

  从节点是在远程计算机上运行的 Java 可执行文件。以下是 Jenkins 从节点的特点:

  • 接收来自 Jenkins 主接点的请求。
  • 从节点可以在各种操作系统上运行。
  • 从节点的工作就是按照命令执行,包括执行主节点分配的构建作业。
  • 您可以将项目配置为始终在特定的从节点或特定类型的从节点上运行,或者仅让 Jenkins 选择下一个可用的从节点。
      下图是不言自明的。它由一个 Jenkins 主节点管理三个 Jenkins 从节点。

      现在,让我们看一个示例,其中 Jenkins 用于在不同的环境中进行测试,例如:Ubuntu、MAC、Windows等。
      如下图所示:

      上图中执行以下功能:
  • Jenkins 会定期检查 Git 存储库中是否有任何源代码更改。
  • 每个构建都需要不同的测试环境,这对于单个Jenkins服务器是不可能的。为了在不同的环境中执行测试,Jenkins 使用了各种从节点,如图所示。
  • Jenkins 主节点要求这些从节点执行测试并生成测试报告。

Jenkins 构建管道

  它用于了解 Jenkins 当前正在执行的任务。通常,几位开发人员会同时进行几项不同的更改,因此了解哪些更改正在测试中,哪些更改正在排队中或哪些构建已损坏是很有用的。这是管道出现的地方。Jenkins 管道为您提供了测试范围的概述。在构建管道中,整个构建被细分为多个部分,例如单元测试、验收测试、打包、报告和部署阶段。管道阶段可以串行或并行执行,如果一个阶段成功,它将自动移至下一个阶段(因此具有“管道”名称的相关性)。下图显示了多个构建管道的外观。

  希望你已经理解了理论概念。现在,让我们来体验一下动手的乐趣。
  我将在 Jenkins 创建一个新作业,这是一个***式项目。然而,还有 3 个可用选项。让我们看一下 Jenkins 中可用的构建作业的类型。

***式项目:

  ***式构建作业是通用构建作业,它提供了最大的灵活性。***式构建作业是最灵活和可配置的选项,可用于任何类型的项目。设置相对简单,我们在此处配置的许多选项也出现在其他构建作业中。

多配置作业:

  “多配置项目”(也称为“矩阵项目”)允许您在不同的环境上运行相同的构建作业。它用于在不同环境、不同数据库甚至不同构建机器上测试应用程序。

监视外部作业:

  通过“监视外部作业”构建作业,您可以关注非交互式流程,例如 cron 作业。

Maven 项目:

  “ maven2/3 项目”是专门适应 Maven 项目的构建工作。Jenkins 理解 Maven pom 文件和项目结构,并且可以使用从 pom 文件中收集的信息来减少设置项目所需的工作。

使用 Jenkins 创建一个构建

第 1 步:在 Jenkins 界面主页中,选择 New Item

第 2 步:输入名称并选择 Freestyle project

第 3 步: 在下一页中,您可以指定作业配置。您会很快发现,创建新项目时有许多可用设置。在这个配置页面上,您还可以选择添加构建步骤来执行额外的操作,例如运行脚本。我将执行一个 shell 脚本。

  这将为您提供一个文本框,您可以在其中添加所需的任何命令。您可以使用脚本来运行各种任务,例如服务器维护、版本控制、读取系统设置等。我将使用它来运行简单的脚本。

第 4 步:保存项目,您将进入项目概述页面。在这里,您可以查看有关项目的信息,包括其构建历史。

第 5 步:点击左侧的 立即构建 开始构建。

第 6 步:要查看更多信息,请在构建历史记录区域中单击该构建,随后您将进入带有构建信息概述的页面。

第 7 步:控制台输出 链接页面对于详细检查作业结果特别有用。

第 8 步:如果您回到 Jenkins 主页面,您将看到所有项目的概述及其信息,包括状态。

  生成状态通过两种方式表示,一种是天气图标,另一种是彩色球。 天气图标特别有用,因为它可以在一张图像中显示多个版本的记录。
  如上图所示,太阳代表着我的所有建造都是成功的。 球的颜色为我们提供了该特定构建的状态,在上图中,球的颜色为蓝色,这表示该特定构建成功了。


推荐阅读
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • Spring Cloud学习指南:深入理解微服务架构
    本文介绍了微服务架构的基本概念及其在Spring Cloud中的实现。讨论了微服务架构的主要优势,如简化开发和维护、快速启动、灵活的技术栈选择以及按需扩展的能力。同时,也探讨了微服务架构面临的挑战,包括较高的运维要求、分布式系统的复杂性、接口调整的成本等问题。最后,文章提出了实施微服务时应遵循的设计原则。 ... [详细]
  • 本文详细介绍了JSP(Java Server Pages)的九大内置对象及其功能,探讨了JSP与Servlet之间的关系及差异,并提供了实际编码示例。此外,还讨论了网页开发中常见的编码转换问题以及JSP的两种页面跳转方式。 ... [详细]
  • Barbican 是 OpenStack 社区的核心项目之一,旨在为各种环境下的云服务提供全面的密钥管理解决方案。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 从码农到创业者:我的职业转型之路
    在观察了众多同行的职业发展后,我决定分享自己的故事。本文探讨了为什么大多数程序员难以成为架构师,并阐述了我从一家外企离职后投身创业的心路历程。 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
author-avatar
手机用户2502932551
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有