文章目录
文本参数(string Parameter)
扩展选择参数(Extended Choice Parameter)
git+jks构建
前言:
在写pipeline或者在UI上构建job的过程,经常会发现某个job的配置应该是适用于几个项目的(或者说是该项目的所有分支),这个情况下如果为每个项目都配置job的话显得十分的麻烦,一不留意也会出错,所以这个情况需要使用jenkins的参数化构建job了。
使用git实现参数构建,需要git服务
写好了源码,使用jks做一个集成
对项目进行有效构建,相当于编译安装的configure和make过程
发布相当于make install
在git中,上传一个项目,会把项目上传到主分支master中,branch 分支
jks发现后会把代码勾过来,然后集成测试发布,发布到指定的服务器上
一:参数化构建概述
需要安装插件:Extended Choice Parameter与Git Paramete
master分支下main还会在做一个分支new
jks一旦发现master更新完了,就会自动集成测试发布
如果想让当前业务先不暂时发布,就新建一个分支然后放进去,会先去集成,然后测试,不会发布,若是没有问题,就会告诉管理者,
管理者会合并分支,然后master分支自动执行集成测试发布
二:普通参数化构建
2.1 进入任务中的配置
2.2 添加参数
翻译下
2.3 选择密码参数
名称可以理解为变量名,默认值为参数,数据类型
2.4 再选择字符参数和文本参数
注意
常见的参数有两种:字符参数和文本参数
#构建 —> 执行shell,需要先安装插件
执行字符参数(string Parameter)构建
2.5 安装插件:Post Build task
2.6 编辑构建,添加shell,这里构建的是文本参数(string Parameter)
2.7 点击构建
#执行任务 "Build with Parameters"
点击开始构建
2.8 查看控制台输出结果
备注:#可以在分支中使用
三:安装Extended Choice Parameter(扩展选择参数)插件,完成构建
3.1 管理jenkins —> 管理插件 —> 可选插件 —> 过滤"Extended Choice Parameter" —> 直接安装(安装完成可以返回工作台)
不能有中文
single Select 单选
test01,test02,test03 对应名称branch的值
Deilimiter 分隔符逗号
3.2 调用
开始构建
3.3 编写property文件
property会放到缓存,jks会从缓存中遍历
[root@jenkins ~]# vim /opt/jenkins.property
abc=u01,u02,u03
在选择源值中,选择property文件
应用保存
3.4 可以指定参数来构建
#注意!!!!!!!
用途可以定义不同的分支
jks和git可以构建
jks和docker 可以构建
四:Git参数化构建插件
Git参数化构建
4.1 需要插件:Git Paramete
4.2 源码服务器创建分支提交远程github
[root@source demo]# git checkout -b dev #创建一个分支名为dev
Switched to a new branch 'dev'
[root@source demo]# echo "hello world" > test.txt #创建一个测试文件
[root@source demo]# git add test.txt #add添加测试文件到本地缓存
[root@source demo]# git commit -m "add test.txt" #提交到本地仓库,名为add test.txt
[dev 94fb946] add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@source demo]# git push origin dev #提交到远程git仓库origin主机
Username for 'https://github.com': gsy-0519
Password for 'https://gsy-0519@github.com':
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'dev' on GitHub by visiting:
remote: https://github.com/gsy-0519/2020531/pull/new/dev
remote:
To https://github.com/gsy-0519/2020531.git
* [new branch] dev -> dev
[root@source demo]# git branch #查看分支
* dev
master
4.3 修改仓库的url,指向本地的git
[root@source demo]# vim .git/config
[root@source demo]#
url = git@192.168.247.206:/home/git/repos/demo.git #修改成本地仓库路径
[root@source demo]# git checkout -b dec #创建一个分支
Switched to a new branch 'dec' #切换到一个新分支‘dec’
[root@source demo]# echo "hello world" > test1.txt
[root@source demo]# git add test1.txt #添加文件到本地仓库缓存层
[root@source demo]# git commit -m "add test1.txt" #提交到本地仓库
[dec d8bee9e] add test1.txt
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
[root@source demo]# git push origin dec #上传到dec分支中origin主机
Counting objects: 6, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 502 bytes | 0 bytes/s, done.
Total 5 (delta 1), reused 0 (delta 0)
To git@192.168.247.206:/home/git/repos/demo.git
* [new branch] dec -> dec
[root@source demo]# git branch #查看当前本地分支
* dec
dev
master
- 此时git服务器有两个分支
[git@git demo.git]$ git branch
dec
* master
4.4 使用git parameter插件——git参数
git parameter
应用保存
4.5 生成密钥对 上传至git服务器
[root@jenkins ~]# ssh-keygen -t rsa
[root@jenkins ~]# ssh-copy-id -i .ssh/id_rsa.pub git@192.168.247.206
4.6 修改jks配置文件,指定使用者为root
[root@jenkins ~]# vim /etc/sysconfig/jenkins
29 JENKINS_USER="root"
[root@jenkins ~]# systemctl restart jenkins
4.7 设置git源码路径
[root@jenkins ~]# yum install git -y
Credentials添加指定为ssh
添加
然后保存,出现错误
删掉之前的一个property文件然后应用保存,因为会冲突
4.8 构建项目
查看运行结果
[root@jenkins ~]# cd /var/lib/jenkins/workspace/A-web/
.git/ pom.xml src/ target/ test1.txt test.txt
[root@jenkins ~]# cd /var/lib/jenkins/workspace/A-web/
[root@jenkins A-web]# ls
pom.xml src target test1.txt test.txt