一文带你解读—骚气的jenkinspipeline玩法
今天想恶补jenkins的小伙伴注意啦!
文末有福利,免费自取哦~
最近看到别人的 jenkins,有我没见过、看不懂但是又好酷好靓的样纸。
大概长以下这样:
还有长以下这样的:
经过一顿搜索 ……原来它就是 我不认识它,它也不认识我的jenkins pipeline
本着好奇心和对知识的求知欲,在网上各种资料一顿乱啃,大概明白了是咋么一回事。
接下来,就从小白开始,一步步完成它。主要分为以下几步:
在 jenkins 上安装 pipeline 插件
创建一个 pipeline 类型的任务
配置 pipeline 脚本。
pipeline 插件安装
在 magage jenkins -> 插件管理 -> avaliable 中,搜索 pipeline,选择并安装。
在 magage jenkins -> 插件管理 -> avaliable 中,pipeline stage view,选择并安装。
安装完成,可以在 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 大体的结构还是要学一学的。
它大概长下面这个样子(超级简单版):
嗯,虽然简单,但是仍然看不太懂……
首先,有几大关键字:
pipeline、agent、stage、step。
什么意思呢?
先举个生活中的例子:
以人从出生到最后消亡的这个大事件为例 ,无论在哪个国家的人(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 自动化测试如何实现多设备并发
4.web 自动化测试框架 TestCafe :听说用过的人都爱上了它
Jenkins 是一个强大的持续集成和交付工具,可以帮助开发团队提高效率和代码质量。在本文中,我们将介绍如何创建一个 Jenkins 多分支管道,以实现高效的代码构建和自动部署。
什么是 Jenkins 多分支管道
Jenkins 多分支管道是一种用于管理和构建多个代码分支的工具。它可以自动检测新的分支和拉取请求,并根据配置的管道执行构建和部署任务。
步骤一:安装 Jenkins
要使用 Jenkins 多分支管道,首先需要安装 Jenkins 并配置必要的插件。按照以下步骤进行安装:
下载 Jenkins.war运行命令"java -jar Jenkins.war"打开浏览器并输入"http://localhost:8080",进入 Jenkins 界面在 Jenkins 界面中选择安装插件并等待插件安装完成
步骤二:创建多分支管道