问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用Jenkins 构建 CI/CD 流水线

发布网友 发布时间:2024-10-07 19:20

我来回答

1个回答

热心网友 时间:2024-11-10 04:21

通过这份 Jenkins 分步教程,构建持续集成和持续交付(CI/CD)流水线。-- Bryant Son(作者)

在我的文章《 使用开源工具构建 DevOps 流水线的初学者指南》中,我分享了一个从头开始构建 DevOps 流水线的故事。推动该计划的核心技术是 Jenkins,这是一个用于建立持续集成和持续交付(CI/CD)流水线的开源工具。

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

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

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

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

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

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

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

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

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

接下来,我将向你展示如何创建和执行 Jenkins 流水线。在本教程的最后,你将建立一个 Jenkins 流水线,如下所示:

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

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

让我们开始吧。

步骤一:下载 Jenkins

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

管理 Jenkins

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

全局工具配置

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

增加附加能力

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

后继

本文为你介绍了使用酷炫的开源工具 Jenkins 创建 CI/CD 流水线的方法。要了解你可以使用 Jenkins 完成的许多其他操作,请在 Opensource.com 上查看以下其他文章:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
150字的寒假日记 不要和别人的一样的 自己写的 要10-30篇就行 谢谢了... 生意合作简单的协议书范本 销售合作的协议书精选范本 销售业务合作协议书范本 脖子插有管,可以包120回老家吗 救护车可以送病患回家吗 电脑ad在哪设置电脑ad怎么修改 AD如何设置原点? win10系统没有输入法图标不见了怎么办 跨境电商|做爆款之前,你必须知道的5大合规要素 从零学习Jenkins部署SpringBoot项目 2020年4月领证的好日子 2020年4月领证吉日一览表 湛江市吉古全机械租赁有限公司怎么样? 雷州市大基福水产品制品厂怎么样? 雷州市柯琴水产品有限公司怎么样? 编译影片时出错渲染错误怎么解决 渲染出错:? 雷州市雷南升升糖果厂怎么样? 广东省雷州市有哪些区 雷州市雷南制冰厂怎么样? 江宁市自考在哪报名? 广东自考考试的报名点在哪? 论·动漫 推荐25个好看的动漫 我看过的不算(我会告诉你的) 奖励丰厚哟... 德比大学学校声誉 德比大学基本信息 山东2020年4月新生报名流程是怎样的? 网银对公账户是什么 2021年山东日照师范“3+4”本科分数线是多少 睡前听音乐好不好? 华为手机选购指南推荐(更新2023) 第五人格天赋点最多多少_第五人格天赋点上限 第五人格入殓师怎么点天赋_第五人格入殓师天赋加点推荐 行政诉讼强制是什么意思? 国家赔偿民事案件的规定有哪些 我国的刑事诉讼中有哪些强制措施 山东泰安自考报名需要什么条件 ...能使试电笔的氖管发光的是火线,不能使氖管发光的是零线... ...用试电笔辨别输电线时,能使氖管发光的是 线;为了防止触电,必须把用... ...用测电笔辨别输电线时,能使氖管发光的是___线.为确保安全用电,控制... ...中有一条叫火火线,另一条叫零零线,用测电笔测电笔来辨别 水货5830中的安卓市场怎么删不掉?删了软件还有个图标,点了说手机未安装... 今天买了部水货5830,发现安全卫士里总是显示后台有程序在运行(海豚浏 ... 我刚买的三星5830 回到家后一冲电就出现屏幕失灵和乱跳是怎么回事 我... 三星5830水货不能接收彩信,还有一开网络连接就很费流量带的软件太多了... 我刚买了一台三星5830越南水货,IMEI358049046684309 我妈买了部三星5830i,353632054657765,想问一下是水货还是行货 我买了三星5830水货请问他的出厂时间是不是翻新机351725056471854_百度... 我有部三星5830I的手机,为什么收短信经常都会连收两三条一样的短信 风丝雨点满天飞是什么字? ...数学(师范)”想考“课程与教学论(数学)”的研究生,算跨考吗?_百度...