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

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

WEB开发

Jenkins参数化构建过程

1987web2023-10-06WEB开发133
一、背景

一、背景

在写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在其中起到的作用: