1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

一文带你解读—骚气的jenkinspipeline玩法

1987web2023-10-06WEB开发112

今天想恶补jenkins的小伙伴注意啦!

文末有福利,免费自取哦~

最近看到别人的 jenkins,有我没见过、看不懂但是又好酷好靓的样纸。

大概长以下这样:

还有长以下这样的:

经过一顿搜索 ……原来它就是 我不认识它,它也不认识我的jenkins pipeline

本着好奇心和对知识的求知欲,在网上各种资料一顿乱啃,大概明白了是咋么一回事。

接下来,就从小白开始,一步步完成它。主要分为以下几步:

  • 在 jenkins 上安装 pipeline 插件

  • 创建一个 pipeline 类型的任务

  • 配置 pipeline 脚本。

pipeline 插件安装

  1. 在 magage jenkins -> 插件管理 -> avaliable 中,搜索 pipeline,选择并安装。

  2. 在 magage jenkins -> 插件管理 -> avaliable 中,pipeline stage view,选择并安装。

  3. 安装完成,可以在 New Item 里,看到 pipeline 选项。

创建 pipeline

环境准备就绪 ,嘿哈,可以开始创建流水线了。

在 jenkins 界面,点击 New Item 新建一个任务,选择流水线,就进入下面这个图了。

然后就懵逼了……pipeline 要写脚本 ?

原来,pipeline 是基本 groovy 脚本的。

那,完蛋了。我只会 python,不会 groovy。难不成我要先学一学 groovy,才能写的出来?

翻了翻 groovy,这玩意跟 Java 有关。我太难了,pipeline 太难了!

幸好,在官网当中,提供了其它的方式。

pipeline 分为 2 种:

  • 脚本式 pipeline,那就真的是要写 groovy 脚本的。

  • 声明式 pipeline,嘿嘿,固定结构化的,不用学 groovy 也是能用滴。

声明式 pipeline 语法:

虽然不用学 groovy,但是声明式 pipeline 大体的结构还是要学一学的。

它大概长下面这个样子(超级简单版):

嗯,虽然简单,但是仍然看不太懂……

首先,有几大关键字:

pipelineagentstagestep。

什么意思呢?

先举个生活中的例子:

以人从出生到最后消亡的这个大事件为例 ,无论在哪个国家的人(agent),人生都会经历几个阶段(stage),在每个阶段(stage),都会有相应的事情(step)要做。

那么,在 jenkins 当中

  • 比如,要实现持续交付这个大事件,就需要经历:

    在哪些代理(agent)上经历编译(stage)、测试(stage)、部署(stage)这 3 大阶段,每一个阶段要做的事情(step)在内容上数量上都是不一样的。

  • 再比如,要实现 python 自动化测试这个大事件,就需要经历:

    在哪些(agent)代理上,经历测试(stage)、通知(stage)这 2 个阶段,测试和通知每一个阶段要做的事情(step)也是不一样的。

所以,这几个关键字是主要的语法结构。总结一下来讲,主要是:

  • 谁来做这个任务?agent

  • 任务切割成几阶段?stage

  • 每个阶段要做啥?steps

我们再来看看上面那张图:

  • pipeline:起始

  • agent any:指示 Jenkins 为整个流水线分配一个执行器(在 Jenkins 环境中的任何可用代理/节点上)和工作区

  • stages:多个 stage 都放在 stages 下面

  • stage("autotest"):名为 autotest 的阶段。

  • steps:为 autotest 阶段里的一个步骤。

  • sh python3 main.py:表示步骤内容:执行 shell 命令,命令内容为:python3 main.py

一句话总结一下:由任意可用执行器来执行任务,任务有 1 个阶段,此阶段的步骤是执行 python 命令。好像大致明白声明式语法的小结构了。

但是仔细思考一下,比如要做自动化测试,好像还有几个小问题?

  • 自动化的代码从哪里来呢?

  • 步骤内容:sh python3 main.py 为啥是这么写的呢?我要用 windows 的命令行执行它要怎么写呢?

1、自动化的代码从哪里来呢?

在这里,我们需要配置源代码。可以在 item 的 pipeline 配置里,从 pipeline script 切换成 pipeline script from SCM

为啥要这么干呢?

  • 不这么干,你就需要在脚本里加上从 GitHub 获取代码的步骤啦。省事,选这个。

  • 官网建议将 pipeline 的脚本保存在 jenkinsfile 当中,并且与你的项目放在一起是最好的。

    pipeline script from SCM 就是指从 SCM 的项目当中,直接读取它的 jenkinsfile 文件中 pipeline 脚本来执行。

    这样,不管你的项目在哪个 jenkins 上去用都没有问题。同时,你也可以随着项目变化去修改它的 jenkinsfile 文件。

切换后的样子:

SCM 选择 Git 之后:

要注意,在 GitHub 上的项目当中,必须要有 jenkinsfile 文件:

2、步骤内容:sh python3 main.py 为啥是这么写的呢?

这是 jenkins pipeline 的语法。在不用 pipeline 的时候,我们构建时的每一个步骤都是选择的插件,然后配置信息即可。

换到 pipeline 里,就没有这个界面操作了……

于是就换成了上面的语法:sh python3 main.py,与上面的截图,同等效果。

那么,问题来了……jenkins 的构建步骤,有那么多的插件,每一个插件的语法也不一样,我该如何知道呢……

果然,jenkins 为我们准备好了后路

jenkins 提供了一个步骤生成器,只需要配置步骤,然后可以直接生成步骤的表达式。将生成的表达式 copy 到 step 中就可以了……

它在 jenkins 的 job 面板当中,请看下图:

是不是很棒棒!不用学习每个插件,用 pipeline 语法如何表达!

jenkinsfile 编写完之后,直接运行那么就可以在 Jenkins 的 Job 界面上看到如下图了:

文末福利

今天的内容,大家get到了吗~

领取免费jenkins学习视频资料

快来找罗罗老师领取吧~

18627543572

或者扫描下方二维码

往期推荐...

1.测试大佬的压箱绝技:教你app 自动化测试如何实现多设备并发

2.在,年终总结可以借我抄一下吗?

3.从自考大专到出走腾讯,他的经历值得每个测试人借鉴

4.web 自动化测试框架 TestCafe :听说用过的人都爱上了它

5.Web 自动化神器 TestCafe——元素定位篇

6.从找漏洞到登录网站后台,一次简单的手动注入漏洞挖掘实战

7.你知道吗?webservice接口做自动化,其实很简单!

8.怎么给测试开发框架 FastAPI 编个接口?

Jenkins 是一个强大的持续集成和交付工具,可以帮助开发团队提高效率和代码质量。在本文中,我们将介绍如何创建一个 Jenkins 多分支管道,以实现高效的代码构建和自动部署。

什么是 Jenkins 多分支管道

Jenkins 多分支管道是一种用于管理和构建多个代码分支的工具。它可以自动检测新的分支和拉取请求,并根据配置的管道执行构建和部署任务。

步骤一:安装 Jenkins

要使用 Jenkins 多分支管道,首先需要安装 Jenkins 并配置必要的插件。按照以下步骤进行安装:

下载 Jenkins.war运行命令"java -jar Jenkins.war"打开浏览器并输入"http://localhost:8080",进入 Jenkins 界面在 Jenkins 界面中选择安装插件并等待插件安装完成

步骤二:创建多分支管道

Jenkins使用教程