一、 背景

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

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

2)Git Parameter

二、Extended Choice Parameter

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

实例2-1         练习

1、点项目配置

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

3、进行配置

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

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

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

6、比如构建test02

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

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

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

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

web端配置:

进行测试:

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

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

三、Git Parameter

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

3.1 安装此插件

3.2 进行配置

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

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

解决此问题两种办法:

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

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

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

将/etc/sysconfig/jenkins文件由改为

然后再重启即可。

3.3 进行相关配置

配置git仓库

凭据这里有两种方式:

第一种:选择无

其实就是基于免秘钥的。

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

接下里这一步做的:

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

3.4 进行构建

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

2、构建成功

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
file changed, insertions(+), deletions(-)
create mode a
[root@web app]# git push origin test
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To git@172.16.1.3:/home/git/repos/app.git
* [new branch] test -> test

jenkins构建查看:

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

构建成功!!

Jenkins自动化CI CD流水线之3--参数化构建的更多相关文章

  1. Jenkins自动化CI CD流水线之1--介绍与安装

    第1章 大纲 CI/CD, DevOps介绍 Git安装与使用 Jenkins安装与使用 权限管理 参数化构建 Master-Slave 流水线(Pipeline) 邮件通知 应用案例 自动发布PHP ...

  2. Jenkins自动化CI&CD流水线

    1 环境说明 主机名称 IP cpu核数/内存/硬盘 安装软件 用途 controlnode 172.16.1.120 2/2/60 git 代码仓库 slavenode1 172.16.1.121 ...

  3. Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目

    一.前提 插件:Maven Integration plugin 环境: maven.tomcat 用的博客系统代码: git clone https://github.com/b3log/solo. ...

  4. Jenkins自动化CI CD流水线之7--流水线自动化发布PHP项目

    一.前提 环境为:lnmp PHP项目:wordpress(此处我们下载一个wordpress的源码.将其模拟为我们的代码上传到我们的git仓库) 二.配置 1)创建job 2)参数化构建 3)配置p ...

  5. Jenkins自动化CI CD流水线之5--pipeline

    一.概览 二.安装 在对jenkins进行初始化安装时,默认已经安装了jenkins的相关插件,如下图所示: 三.实操 新建任务: 编写pipeline脚本: 我们可以借助流水线语法去做. test流 ...

  6. Jenkins自动化CI CD流水线之4--Master-Slave架构

    一.介绍 jenkins的Master-slave分布式架构主要是为了解决jenkins单点构建任务多.负载较高.性能不足的场景. Master/Slave相当于Server和agent的概念.Mas ...

  7. Jenkins自动化CI CD流水线之6--构建邮件状态通知

    一. 前提 前提: 服务器开启邮箱服务: 二. 基础配置 需要安装一个插件: 插件: Email Extension Plugin 进行配置: 系统管理->系统设置-> 相关配置如下图: ...

  8. Jenkins自动化CI CD流水线之2--用户权限管理

    一. 背景 针对开发.运维.测试针对不同角色进行不同权限划分, 基于插件: Role-based Authorization Strategy来实现. 一. 安装 安装该插件: 系统管理->管理 ...

  9. Docker: Jenkins与Docker的自动化CI/CD流水线实战

    什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...

随机推荐

  1. maven 配置说明

    1.坐标 1.1 每一jar文件都有一个唯一坐标.通过坐标可以精确确定是哪个jar 1.2 坐标组成 1.2.1 Group ID : 公司名.公司网址倒写 1.2.2 Artifact ID : 项 ...

  2. 每天一道算法题(32)——输出数组中第k小的数

    1.题目 快速输出第K小的数 2.思路 使用快速排序的思想,递归求解.若键值位置i与k相等,返回.若大于k,则在[start,i-1]中寻找第k大的数.若小于k.则在[i+1,end]中寻找第k+st ...

  3. java中一些常用的英语

     abstract (关键字  ) 抽象  ['.bstr.kt]  access vt.访问,存取  ['.kses]'(n.入口,使用权)  algorithm n.算法  ['.lg.rie ...

  4. Codeforces 960F 线段树

    题意:https://blog.csdn.net/qq_39809664/article/details/79871282 思路:我们考虑LIS的状态转移,对于这个题,假设现在扫描到的边是(u, v, ...

  5. Blender 软件 四视图布局的创建方法

    Blender 软件 四视图布局的创建方法 我使用的Blender版本:Blender V 2.77 Q: 为什么要创建一个:四视图布局场景? A: 原因1:四视图布局最适合模型建模.原因2:在 Bl ...

  6. PCL—点云分割(最小割算法) 低层次点云处理

    1.点云分割的精度 在之前的两个章节里介绍了基于采样一致的点云分割和基于临近搜索的点云分割算法.基于采样一致的点云分割算法显然是意识流的,它只能割出大概的点云(可能是杯子的一部分,但杯把儿肯定没分割出 ...

  7. parseXXX的用法

    转换字符串. parseXXX是Integer类.等基本数据类型包装类的方法,用于实现String和int型数据的转换.例如, Integer.getInteger(String s) 从字符串中获取 ...

  8. 数据库commit问题

    对数据库进行修改后,需要commit!---之前也是忘记commit导致数据库反应不过来.

  9. discuz_ucenter_api_for_java的中文问题

    我踩过的坑,希望你别掉进来. 云服务需要和UCENTER做对接,一个php,一个Java,幸好有了discuz_ucenter_api_for_java,帮我解决了大部分问题,为什么是大部分问题,因为 ...

  10. Newtonsoft Json操作类库的使用

    1.解析简单Json字符串 if (l_sSenJson != "") { JObject obj2 = (JObject)JsonConvert.DeserializeObjec ...