温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Jenkins构建CI/CD流水线

发布时间:2021-12-22 16:42:34 来源:亿速云 阅读:166 作者:小新 栏目:互联网科技

这篇文章主要为大家展示了“如何使用Jenkins构建CI/CD流水线”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Jenkins构建CI/CD流水线”这篇文章吧。

什么是流水线?

在进入本教程之前,了解有关 CI/CD流水线pipeline的知识会很有帮助。

首先,了解 Jenkins 本身并不是流水线这一点很有帮助。只是创建一个新的 Jenkins 作业并不能构建一条流水线。可以把  Jenkins 看做一个遥控器,在这里点击按钮即可。当你点击按钮时会发生什么取决于遥控器要控制的内容。Jenkins 为其他应用程序  API、软件库、构建工具等提供了一种插入 Jenkins 的方法,它可以执行并自动化任务。Jenkins  本身不执行任何功能,但是随着其它工具的插入而变得越来越强大。

流水线是一个单独的概念,指的是按顺序连接在一起的事件或作业组:

流水线pipeline”是可以执行的一系列事件或作业。

理解流水线的最简单方法是可视化一系列阶段,如下所示:

如何使用Jenkins构建CI/CD流水线

Pipeline example

在这里,你应该看到两个熟悉的概念:阶段Stage步骤Step

  • 阶段:一个包含一系列步骤的块。阶段块可以命名为任何名称;它用于可视化流水线过程。

  • 步骤:表明要做什么的任务。步骤定义在阶段块内。

在上面的示例图中,阶段 1 可以命名为 “构建”、“收集信息”或其它名称,其它阶段块也可以采用类似的思路。“步骤”只是简单地说放上要执行的内容,它可以是简单的打印命令(例如,echo "Hello, World")、程序执行命令(例如,java HelloWorld)、shell 执行命令( 例如,chmod 755 Hello)或任何其他命令,只要通过 Jenkins 环境将其识别为可执行命令即可。

Jenkins 流水线以编码脚本的形式提供,通常称为 “Jenkinsfile”,尽管可以用不同的文件名。下面这是一个简单的 Jenkins 流水线文件的示例:

// Example of Jenkins pipeline script pipeline {  stages {    stage("Build") {      steps {          // Just print a Hello, Pipeline to the console          echo "Hello, Pipeline!"          // Compile a Java file. This requires JDKconfiguration from Jenkins          javac HelloWorld.java          // Execute the compiled Java binary called HelloWorld. This requires JDK configuration from Jenkins          java HelloWorld          // Executes the Apache Maven commands, clean then package. This requires Apache Maven configuration from Jenkins          mvn clean package ./HelloPackage          // List the files in current directory path by executing a default shell command          sh "ls -ltr"      }    }   // And next stages if you want to define further...  } // End of stages} // End of pipeline

从此示例脚本很容易看到 Jenkins 流水线的结构。请注意,默认情况下某些命令(如 javajavacmvn)不可用,需要通过 Jenkins 进行安装和配置。 因此:

Jenkins 流水线是一种以定义的方式依次执行 Jenkins 作业的方法,方法是将其编码并在多个块中进行结构化,这些块可以包含多个任务的步骤。

好。既然你已经了解了 Jenkins 流水线是什么,我将向你展示如何创建和执行 Jenkins 流水线。在本教程的最后,你将建立一个 Jenkins 流水线,如下所示:

如何使用Jenkins构建CI/CD流水线

Final Result

如何构建 Jenkins 流水线

为了便于遵循本教程的步骤,我创建了一个示例 GitHub 存储库和一个视频教程。

开始本教程之前,你需要:

  • Java 开发工具包(JDK):如果尚未安装,请安装 JDK 并将其添加到环境路径中,以便可以通过终端执行 Java 命令(如 java jar)。这是利用本教程中使用的 Java Web Archive(WAR)版本的 Jenkins 所必需的(尽管你可以使用任何其他发行版)。

  • 基本计算机操作能力:你应该知道如何键入一些代码、通过 shell 执行基本的 Linux 命令以及打开浏览器。

让我们开始吧。

步骤一:下载 Jenkins

导航到 Jenkins 下载页面。向下滚动到  “Generic Java package (.war)”,然后单击下载文件;将其保存在易于找到的位置。(如果你选择其他 Jenkins  发行版,除了步骤二之外,本教程的其余步骤应该几乎相同。)使用 WAR 文件的原因是它是个一次性可执行文件,可以轻松地执行和删除。

如何使用Jenkins构建CI/CD流水线

Download Jenkins as Java WAR file

步骤二:以 Java 二进制方式执行 Jenkins

打开一个终端窗口,并使用 cd <your path> 进入下载 Jenkins 的目录。(在继续之前,请确保已安装 JDK 并将其添加到环境路径。)执行以下命令,该命令将 WAR 文件作为可执行二进制文件运行:

java -jar ./jenkins.war

如果一切顺利,Jenkins 应该在默认端口 8080 上启动并运行。

如何使用Jenkins构建CI/CD流水线

Execute as an executable JAR binary

步骤三:创建一个新的 Jenkins 作业

打开一个 Web 浏览器并导航到 localhost:8080。除非你有以前安装的 Jenkins,否则应直接转到 Jenkins 仪表板。点击 “Create New Jobs”。你也可以点击左侧的 “New Item”。

如何使用Jenkins构建CI/CD流水线

Create New Job

步骤四:创建一个流水线作业

在此步骤中,你可以选择并定义要创建的 Jenkins 作业类型。选择 “Pipeline” 并为其命名(例如,“TestPipeline”)。单击 “OK” 创建流水线作业。

如何使用Jenkins构建CI/CD流水线

Create New Pipeline Job

你将看到一个 Jenkins 作业配置页面。向下滚动以找到 “Pipeline” 部分。有两种执行 Jenkins  流水线的方法。一种方法是在 Jenkins 上直接编写流水线脚本,另一种方法是从 SCM(源代码管理)中检索 Jenkins  文件。在接下来的两个步骤中,我们将体验这两种方式。

步骤五:通过直接脚本配置并执行流水线作业

要使用直接脚本执行流水线,请首先从 GitHub 复制该 Jenkinsfile 示例的内容。选择  “Pipeline script” 作为 “Destination”,然后将该 Jenkinsfile 的内容粘贴到 “Script”  中。花一些时间研究一下 Jenkins 文件的结构。注意,共有三个阶段:Build、Test 和  Deploy,它们是任意的,可以是任何一个。每个阶段中都有一些步骤;在此示例中,它们只是打印一些随机消息。

单击 “Save” 以保留更改,这将自动将你带回到 “Job Overview” 页面。

如何使用Jenkins构建CI/CD流水线

Configure to Run as Jenkins Script

要开始构建流水线的过程,请单击 “Build Now”。如果一切正常,你将看到第一个流水线(如下面的这个)。

如何使用Jenkins构建CI/CD流水线

Click Build Now and See Result

要查看流水线脚本构建的输出,请单击任何阶段,然后单击 “Log”。你会看到这样的消息。

如何使用Jenkins构建CI/CD流水线

Visit sample GitHub with Jenkins get clone link

步骤六:通过 SCM 配置并执行流水线作业

现在,换个方式:在此步骤中,你将通过从源代码控制的 GitHub 中复制 Jenkinsfile 来部署相同的 Jenkins 作业。在同一个 GitHub 存储库中,通过单击 “Clone or download” 并复制其 URL 来找到其存储库 URL。

如何使用Jenkins构建CI/CD流水线

Checkout from GitHub

单击 “Configure” 以修改现有作业。滚动到 “Advanced Project Options” 设置,但这一次,从  “Destination” 下拉列表中选择 “Pipeline script from SCM” 选项。将 GitHub 存储库的 URL  粘贴到 “Repository URL” 中,然后在 “Script Path” 中键入 “Jenkinsfile”。 单击 “Save”  按钮保存。

如何使用Jenkins构建CI/CD流水线

Change to Pipeline script from SCM

要构建流水线,回到 “Task Overview” 页面后,单击 “Build Now” 以再次执行作业。结果与之前相同,除了多了一个称为 “Declaration: Checkout SCM” 的阶段。

如何使用Jenkins构建CI/CD流水线

Build again and verify

要查看来自 SCM 构建的流水线的输出,请单击该阶段并查看 “Log” 以检查源代码控制克隆过程的进行情况。

如何使用Jenkins构建CI/CD流水线

Verify Checkout Procedure

除了打印消息,还能做更多

恭喜你!你已经建立了第一个 Jenkins 流水线!

“但是等等”,你说,“这太有限了。除了打印无用的消息外,我什么都做不了。”那没问题。到目前为止,本教程仅简要介绍了 Jenkins 流水线可以做什么,但是你可以通过将其与其他工具集成来扩展其功能。以下是给你的下一个项目的一些思路:

  • 建立一个多阶段的 Java 构建流水线,从以下阶段开始:从 Nexus 或 Artifactory 之类的 JAR 存储库中拉取依赖项、编译 Java 代码、运行单元测试、打包为 JAR/WAR 文件,然后部署到云服务器

  • 实现一个高级代码测试仪表板,该仪表板将基于 Selenium 的单元测试、负载测试和自动用户界面测试,报告项目的运行状况。

  • 构建多流水线或多用户流水线,以自动化执行 Ansible 剧本的任务,同时允许授权用户响应正在进行的任务。

  • 设计完整的端到端 DevOps 流水线,该流水线可提取存储在 SCM 中的基础设施资源文件和配置文件(例如 GitHub),并通过各种运行时程序执行该脚本。

学习本文结尾处的任何教程,以了解这些更高级的案例。

管理 Jenkins

在 Jenkins 主面板,点击 “Manage Jenkins”。

如何使用Jenkins构建CI/CD流水线

Manage Jenkins

全局工具配置

有许多可用工具,包括管理插件、查看系统日志等。单击 “Global Tool Configuration”。

如何使用Jenkins构建CI/CD流水线

Global Tools Configuration

增加附加能力

在这里,你可以添加 JDK 路径、Git、Gradle 等。配置工具后,只需将该命令添加到 Jenkinsfile 中或通过 Jenkins 脚本执行即可。

如何使用Jenkins构建CI/CD流水线

以上是“如何使用Jenkins构建CI/CD流水线”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI