Jenkins自动化CI CD流水线之3--参数化构建
一、 背景
如果只是简单的构建,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--参数化构建的更多相关文章
- Jenkins自动化CI CD流水线之1--介绍与安装
第1章 大纲 CI/CD, DevOps介绍 Git安装与使用 Jenkins安装与使用 权限管理 参数化构建 Master-Slave 流水线(Pipeline) 邮件通知 应用案例 自动发布PHP ...
- Jenkins自动化CI&CD流水线
1 环境说明 主机名称 IP cpu核数/内存/硬盘 安装软件 用途 controlnode 172.16.1.120 2/2/60 git 代码仓库 slavenode1 172.16.1.121 ...
- Jenkins自动化CI CD流水线之8--流水线自动化发布Java项目
一.前提 插件:Maven Integration plugin 环境: maven.tomcat 用的博客系统代码: git clone https://github.com/b3log/solo. ...
- Jenkins自动化CI CD流水线之7--流水线自动化发布PHP项目
一.前提 环境为:lnmp PHP项目:wordpress(此处我们下载一个wordpress的源码.将其模拟为我们的代码上传到我们的git仓库) 二.配置 1)创建job 2)参数化构建 3)配置p ...
- Jenkins自动化CI CD流水线之5--pipeline
一.概览 二.安装 在对jenkins进行初始化安装时,默认已经安装了jenkins的相关插件,如下图所示: 三.实操 新建任务: 编写pipeline脚本: 我们可以借助流水线语法去做. test流 ...
- Jenkins自动化CI CD流水线之4--Master-Slave架构
一.介绍 jenkins的Master-slave分布式架构主要是为了解决jenkins单点构建任务多.负载较高.性能不足的场景. Master/Slave相当于Server和agent的概念.Mas ...
- Jenkins自动化CI CD流水线之6--构建邮件状态通知
一. 前提 前提: 服务器开启邮箱服务: 二. 基础配置 需要安装一个插件: 插件: Email Extension Plugin 进行配置: 系统管理->系统设置-> 相关配置如下图: ...
- Jenkins自动化CI CD流水线之2--用户权限管理
一. 背景 针对开发.运维.测试针对不同角色进行不同权限划分, 基于插件: Role-based Authorization Strategy来实现. 一. 安装 安装该插件: 系统管理->管理 ...
- Docker: Jenkins与Docker的自动化CI/CD流水线实战
什么是CI/CD 持续集成(Continuous Integration,CI):代码合并.构建.部署.测试都在一起,不断地执行这个过程,并对结果反馈.持续部署(Continuous Deployme ...
随机推荐
- 71-n皇后
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- android sdk更新源
什么是Android SDK: SDK:(software development kit)软件开发工具包.被软件开发工程师用于为特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集 ...
- java中字符串的存储
在java中,不同的字符串赋值方法,其所在的地址可能不同也就导致,两个字符串的值看似相等可是在s1==s2操作时,其结果返回的却是false 例: String s1 = "Programm ...
- 树莓派研究笔记(5)-- FM网络收音机
1. 安装mpc sudo apt-get install mpd mpc 2.添加流.注意,这里有个坑,如果下面这个地址不能用,那么就无法测试了.建议先下载一个龙卷风或者酷狗网络收音机,然后添加地址 ...
- JavaWeb_反射
一个类有多个组成部分,例如:成员变量,方法,构造方法等.反射就是加载类,并解剖出类的各个组成部分. 编程时什么情况下才需要加载类,并解剖出累的各个组成部分呢? 反射是用来做框架的. 从配置文件中解读类 ...
- Oracle数据库之多表查询一
上一篇给大家介绍了数据的单表查询,相信大家对于单表的查询应该都有了一些了解.单表查询在数据库中的使用会有一些,但并不是很多,但是作为初学者,我们需要学习单表查询的思路.今天呢,我们为大家介绍一下数据库 ...
- Servlet视频-开发第一个java web(最简单的java web程序)(二)
web项目有目录结构要求 WEB-INFO 文件夹 是一个Servlet规范,必须要这么命名,在换个文件夹里面如果创建一个jsp文件是不能直接访问的,在WEB-INfO文件夹之外创建的jsp可以直接访 ...
- sina 接口 根据ip获取各个国家和地区
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=ip
- 在 Java 的反射中,Class.forName 和 ClassLoader 的区别
1. 解释 在java中Class.forName()和ClassLoader都可以对类进行加载.ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全 ...
- namespace/symbol/:keyword/::keyword in Clojure
此文已由作者张佃鹏授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.关键字(:keyword/::keyword): 最近在学习使用clojure.spec(验证数据的 ...