Jenkins参数化构建过程
一、背景
在写pipeline或者在UI上构建job的过程,经常会发现某个job的配置应该是适用于几个项目的(或者说是该项目的所有分支),这个情况下如果为每个项目都配置job的话显得十分的麻烦,一不留意也会出错,所以这个情况需要使用jenkins的参数化构建job了。和之前一样,本篇文章只是作为一个入门级的文章,尽量让大家都能学会使用。
二、构建过程
这里以三个实例来说明参数化构建过程是如何实现的.
A.通过jenkins的UI界面来配置
1.创建job,输入job名称,选择构建一个maven项目,点击确认即可
2.具体的job配置如下:
General部分配置:这里以git的地址和分支名称为例子。勾选上参数化构建过程,选择字符参数:名称建议用大写,默认值可填写可不填写,描述自己随便写
源码管理部分配置:在job中可以直接用${在上一步定义的变量}这样的方式来使用,比如以下面的方式:
其他的配置比如build节点、构建设置等在之前的文章有写,这里就不再重复了
3.以上job配置完成以后在左边导航栏会出现Build with Parameters(之前是立刻构建),然后填写好相应的参数,点击开始构建就好:
以上就是一个简单的参数化构建的过程了,下面以pipeline的写法为例子再来说明一下
B.pipeline来实现参数化构建构建过程
1.第一步和A例子一样创建job,但是类型选择的时候选择流水线,这里就不重复了
2.job的配置以及pipeline的写法
General部分配置:这部分和上面一样,就不说了;构建触发器的部分大家也可以根据自己的选择来勾选
流水线部分:pipeline的代码如下所示:
pipeline{agentanystages{stage(checkout code){steps{gitbranch:"${BRANCH}",credentialsId:758a98db-8763-4099-a47b-c6ad3565b085,url:${URL}}}stage(output branch){when{not{branchmaster}}steps{echo"this is branch:${BRANCH}"}}}}
以上的代码就表示先clone代码,然后如果分支不是master的话就输出当前的分支名称。
3.点击Build with Parameters后输入相应的参数,然后点击开始构建
结果如下:
pipeline可以根据自己的写法来执行不同逻辑,这里只是简单的演示一下,相信经过上面的演示,大家都应该知道如何使用jenkins参数化构建job了。个人认为,参数化构建过程适用于该job可以同时被多个项目使用的场景,就像java编程语言中的传参,可以根据参数的不同来做不同的构建工作.
C.通过Jenkinsfile来实现pipeline as code执行构建过程,这种方式需要自己维护Jenkinsfile.
1.创建Job的过程这里就不重复了
2.job配置
General部分配置:这部分和上面一样,传递BRANCH和URL两个参数;构建触发器的部分大家也可以根据自己的选择来勾选
流水线部分按照下面配置:
定义:选择Pipeline script from SCM
SCM:这里和之前一样配置
脚本路径:默认将Jenkinsfile放在项目根目录下的话,这里可以不用更改
注意:使用这种方式可以实现pipeline as code!但是要在代码库的根目录下生成一个Jenkinsfile文件,并填写要执行的pipeline的内容.
三、其他
以上是关于jenkins参数化构建过程的一些分享,大家可以尝试一下。最近有同学私信我说文章写得挺详细简单,要给我点赞(但是我都没看到点赞呀,哈哈)
如果对文章有疑问或者哪里不懂的请联系我,在力所能及的范围内帮助解答;如果文章有错误,也欢迎指出。
好处:
- 降低风险,由于持续集成不断去构建,编译和测试,可以很早发现问题
- 减少重复性的工作
- 持续部署,提供可部署单元包
- 持续交付可供使用的版本
2. Jenkins 持续集成
我们先通过这张图来看到Jenkins在其中起到的作用:
- 首先,开发人员将代码提交到Git仓库
- 然后
别当工具人了,手把手教会你Jenkins
一、Jenkins是什么
-
下一篇
什么是Jenkins?Jenkins之环境部署
Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作。官方网站: