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 ...
随机推荐
- Opengl创建机器人手臂代码示例
/*******************************************************robot.cpp*基于opengl的机械手臂示例代码*s:机械臂逆时针旋转*S:机械臂 ...
- UIScrollView现实循环滚动
#import "RootViewController.h" #define width [UIScreen mainScreen].bounds.size.width #defi ...
- Luogu 3402 可持久化并查集
点开这题纯属无聊……不过既然写掉了,那就丢一个模板好了 不得不说,可持久化并查集实现真的很暴力,就是把并查集的数组弄一个主席树可持久化. 有一点要注意的是不能写路径压缩,这样跳版本的时候会错,所以弄一 ...
- PersonDto中@ResourceAccess(readOnly = true)以及swagger的理解-----似懂非懂,日后消化
@JsonApiResource(type = PersonDto.RESOURCE_TYPE) @EntityMapping(entityClass = Person.class) //@Resou ...
- cs231n knn
# coding: utf-8 # In[19]: import random import numpy as np from cs231n.data_utils import load_CIFAR1 ...
- WordCountPro 编码与测试
WordCountPro github项目地址:https://github.com/handsomesnail/WordCountPro PSP表格 PSP2.1 PSP阶段 预估耗时(小时) ...
- Java之封装特性
Java中的三大特性:继承,封装,多态: 其中封装概念:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口. 面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的 对象 ...
- 【zookeeper】
window下安装zookeeper三结点集群: 1:解压缩zookeeper压缩包:复制三分并且命名成:Server_A Server_B Server_C 2:拷贝conf目录下的文件zoo ...
- android studio中退出时弹出对话框
在app中总是不小心点击了退出怎么办?当然是加个弹出的提示框了,本人新手,就加在主界面上了 @Override public boolean onKeyDown(int keyCode, KeyEve ...
- C#中的线程池使用(二)
线程池是后台线程.每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中.每个进程只有一个线程池对象. 下面说一下线程池中的异常,在线程池中未处理的异常将终止进程.以下为此规则的三种例外 ...