一、 背景

如果只是简单的构建,jenkins自己默认的插件可以做,但是如果我们想要在构建过程中有更多功能,比如说:选择性构建、传参、项目指定变量等等其他功能,基础的参数化构建可以实现一些简单功能,但是要想使用更多功能这时候我们就需要借助参数化构建来实现交互的功能。此处我们来借助以下插件来进行实现:

1)Extended Choice Parameter(更丰富的参数化构建插件)

2)Git Parameter

二、Extended Choice Parameter

首先还是安装该插件,去管理插件里面进行安装

jenkins 参数化SSH lable jenkins参数化构建插件_git

实例2-1         练习

1、点项目配置

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_02

2、参数化构建中选择我们刚刚安装过的插件

jenkins 参数化SSH lable jenkins参数化构建插件_开发工具_03

3、进行配置

 

jenkins 参数化SSH lable jenkins参数化构建插件_开发工具_04

这里这个branch我们就相当于给其当做一个变量,然后来为其进行传参。

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_05

4、构建这里选择执行shell进行测试

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_06

jenkins 参数化SSH lable jenkins参数化构建插件_开发工具_07

5、当我们再次选择构建时,可以发现刚才的一系列参数化配置已经生效

jenkins 参数化SSH lable jenkins参数化构建插件_开发工具_08

6、比如构建test02

我们可以发现控制台的输出也是成功了的

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_09

7、数据来源我们也可以选择文件

在jenkins所在服务器进行如下操作:



[root@jenkins ~]# vim /opt/jenkins.property   #建立一个文件
abc=t1,t2,t3,t4



 web端配置:

jenkins 参数化SSH lable jenkins参数化构建插件_git_10

进行测试:

构建前:(可以发现也是生效的)

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_11

构建后查看结果:(也是成功的)

jenkins 参数化SSH lable jenkins参数化构建插件_运维_12

三、Git Parameter

再用git时使用该插件是非常方便的。

3.1 安装此插件

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_13

3.2 进行配置

在配置之前我们先来说一个坑,当我们在配置git中写了远端地址后,会有如下报错:

jenkins 参数化SSH lable jenkins参数化构建插件_git_14

这是因为jenkins我们yum装的运行用户是jenkins用户,此处是jenkins用户去git仓库进行拉取,而jenkins用户的话默认是/bin/false的,不但不能登录,也没有git命令权限,所以肯定是失败的。

解决此问题两种办法:

1)更改jenkins用户为root用户;

2)更改jenkins用户为正常的普通用户/bin/bash,将其的公钥加入到git服务器的git用户中。

此处暂时先用第一种解决办法,更改jenkins的运行用户为root用户,通过如下方式进行更改:

将/etc/sysconfig/jenkins文件由

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_15

改为

jenkins 参数化SSH lable jenkins参数化构建插件_运维_16

然后再重启即可。

3.3 进行相关配置

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_17

配置git仓库

jenkins 参数化SSH lable jenkins参数化构建插件_git_18

凭据这里有两种方式:

第一种:选择无

其实就是基于免秘钥的。

第二种:用户(其实就是git用户)

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_19

接下里这一步做的:

当我们构建时给我们一个选择列表,这个变量是代表分支。有哪些分支传递给这个变量。

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_20

3.4 进行构建

1、我们发现列表中已经有了可选的分支

jenkins 参数化SSH lable jenkins参数化构建插件_参数化_21

2、构建成功

jenkins 参数化SSH lable jenkins参数化构建插件_git_22

3、我们还可以新建一个分支,增添一些内容再来验证一下我们这个插件


[root@web app]# git branch 
* master
[root@web app]# git branch test
[root@web app]# git checkout test
Switched to branch 'test'
[root@web app]# git branch
  master
* test
[root@web app]# touch a
[root@web app]# git add .
[root@web app]# git commit -m "a"
[test c286460] a
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
[root@web app]# git push origin test
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 231 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@172.16.1.3:/home/git/repos/app.git
 * [new branch]      test -> test


jenkins构建查看:

jenkins 参数化SSH lable jenkins参数化构建插件_git仓库_23

可以发现已经有了我们新建的分支。

构建成功!!

jenkins 参数化SSH lable jenkins参数化构建插件_运维_24