提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会
Jenkins参数化构建
- 前言
- 一、Jenkins参数化构建
- 二、环境介绍
-
- [2.1 机器环境](#2.1 机器环境)
- [2.2 插件下载](#2.2 插件下载)
- 三、tag方式
-
- [3.1 前置环境](#3.1 前置环境)
- [3.2 拉取代码首次打标签](#3.2 拉取代码首次打标签)
- [3.3 jenkins参数配置](#3.3 jenkins参数配置)
- [3.4 二次打标签](#3.4 二次打标签)
- [3.5 版本切换](#3.5 版本切换)
- [3.6 版本回退](#3.6 版本回退)
- 四、commit修订号
-
- [4.1 Jenkins参数配置](#4.1 Jenkins参数配置)
- [4.2 再次打标签](#4.2 再次打标签)
- [4.3 版本切换](#4.3 版本切换)
前言
如果对Jenkins环境部署不熟悉的小伙伴可以看这篇文章https://blog.csdn.net/m0_63756214/article/details/155387987?spm=1001.2014.3001.5501
如果对Jenkins+Gitlab环境部署不熟悉的小伙伴可以看这篇文章https://blog.csdn.net/m0_63756214/article/details/155531211?spm=1001.2014.3001.5501
一、Jenkins参数化构建
Jenkins 的参数化构建是指在触发 Job(任务)构建时,允许用户手动输入 / 选择自定义参数,让构建过程更灵活、可配置,避免为不同场景重复创建几乎相同的 Job
普通构建是 "固定脚本执行",参数化构建是 "带变量的脚本执行",变量值由构建触发时动态指定
用大白话说:就像用导航软件:默认的 "固定脚本" 是 "从 A 到 B",参数化就是让你选「出行方式(驾车 / 公交 / 步行)」「是否避开高速」,选完导航才按你的要求规划路线
再落到 Jenkins 实际用的场景:
没有参数化:你要部署测试环境,建一个 Job;部署生产环境,又建一个 Job;换个版本号,再建一个 Job------Job 越建越多,改脚本时每个都要改,累死;
有了参数化:只建一个 "部署 Job",加两个参数:①选环境(测试 / 生产)②填版本号(1.0/2.0)。每次部署前,选一下环境、填一下版本号,点一下构建,脚本就自动按你选的来部署,不用多建 Job,改脚本也只改这一个
参数化构建有很多方式,我这里讲最常见的两种方式:tag方式和commit修订号方式
二、环境介绍
2.1 机器环境
| 角色定位 | 主机名 | IP 地址 | 部署软件及版本 | 运行内存 | 作用 |
|---|---|---|---|---|---|
| 代码仓库服务器 | gitlab | 192.168.136.10 | gitlab 最新版 | 最少3G | 充当远程代码仓库,存储项目源码,管理代码提交、分支及合并流程 |
| 开发机 | developer | 192.168.136.20 | git 最新版 | 最少1G | 模拟开发人员,通过Git工具与GitLab仓库交互,完成代码拉取、开发及推送 |
| CI/CD调度服务器 | jenkins | 192.168.136.30 | jdk11,tomcat10.1.49,maven3.9.11,jenkins2.504,git 最新版 | 最少3G | 实现自动代码拉取、构建、测试及部署,完成CI/CD全流程自动化 |
| 后端应用服务器-1 | tomcat-1 | 192.168.136.134 | jdk11,tomcat9.0.112 | 最少1G | 模拟生产/测试环境后端节点,接收Jenkins部署的应用程序,提供服务访问 |
| 后端应用服务器-2 | tomcat-2 | 192.168.136.135 | jdk11,tomcat9.0.112 | 最少1G | 模拟生产/测试环境后端节点,接收Jenkins部署的应用程序,提供服务访问 |
由于这套环境我已经搭建好了,在这篇文章中有详细教程https://blog.csdn.net/m0_63756214/article/details/155531211?spm=1001.2014.3001.5501
下面我直接演示tag方式和commit方式怎么操作
2.2 插件下载
要实现Jenkins的参数化构建,要下载相应的插件

下拉找到"Plugins"


我之前已经下载过了,下载过的插件可以在"Installed plugins"中搜索到

三、tag方式
我将按以下步骤完成整个操作流程:
- 模拟开发人员操作:从 GitLab 代码仓库拉取 test-project 项目至本地开发机,为项目打标签 v1.1 并将该标签推送至 GitLab;
- Jenkins 配置与构建:在 Jenkins CI/CD 调度服务器中完成对应配置,基于 v1.1 标签构建该版本项目;
- 代码迭代与新版本发布:模拟开发人员修改 test-project 项目代码,完成修改后为项目打标签 v1.2,将标签推送至 GitLab;
- Jenkins 验证与版本回退测试:在 Jenkins 中直接基于 v1.2 标签构建新版本,验证构建效果;随后测试 Jenkins 是否支持版本回退操作,验证能否回退至 v1.1 版本
3.1 前置环境
当前在Jenkins构建好,访问页面是下面这样

登录gitlab,可以看到我之前创建的test-project项目并没有打tag

3.2 拉取代码首次打标签
模拟开发人员拉取gitlab的代码

bash
#开发人员
[root@developer ~]# ls
[root@developer ~]# git clone http://192.168.136.10/root/test-project.git
Username for 'http://192.168.136.10': root #gitlab用户名
Password for 'http://root@192.168.136.10': #gitlab密码
[root@developer ~]# ls
test-project
[root@developer ~]# cd test-project/ #进入项目
[root@developer test-project]# cat src/main/webapp/index.jsp #查看页面,就是我们上面看到的那个页面

bash
[root@developer test-project]# git add * #推送到暂存区
[root@developer test-project]# git commit -m "简易登录平台" #推送到本地仓库
[root@developer test-project]# git tag -a "v1.1" -m "简易登录平台" #打标签,v1.1
[root@developer test-project]# git tag #查看当前标签
v1.1
[root@developer test-project]# git push origin v1.1 #推送到远程仓库gitlab中
可以看到,gitlab上已经有标签了

3.3 jenkins参数配置
由于之前其他的一些配置(身份验证,保留构建方案,后端脚本执行方案等)我已经配置完成了,目前只需要添加参数化配置即可






3.4 二次打标签
模拟开发人员修改项目代码,然后推送到远程仓库
bash
#这里我修改了页面的样式
[root@developer test-project]# vim src/main/webapp/index.jsp

bash
[root@developer test-project]# git add *
[root@developer test-project]# git commit -m "优化的页面"
[root@developer test-project]# git tag -a "v1.2" -m "优化的页面" #打标签v1.2
[root@developer test-project]# git tag #显示当前标签种类
v1.1
v1.2
[root@developer test-project]# git push origin v1.2 #推送到远程仓库gitlab中
可以看到,gitlab中已经有两个标签

3.5 版本切换
由于我们之前已经配置好了,所以我们现在直接在Jenkins上构建即可


刷新页面后,可确认Jenkins已成功拉取代码。此后,开发人员只需在代码修改完成后打上新标签,即可直接在Jenkins触发构建,Jenkins会自动拉取GitLab对应版本的代码,并部署到后端服务器

3.6 版本回退
有的时候由于新版本不稳定,需要切换到旧版本,这个时候就需要版本回退
我们同样只需要选择相应的版本直接构建即可

可以看到构建成功

刷新页面,版本回退成功

四、commit修订号
4.1 Jenkins参数配置
commit的方式和tag的方式基本一致,只需要在原来的基础上更改即可




可以看到构建成功

访问页面

4.2 再次打标签
bash
#模拟开发人员修改代码,然后推送到远程仓库
[root@developer test-project]# vim src/main/webapp/index.jsp

bash
[root@developer test-project]# git add *
[root@developer test-project]# git commit -m "优化的页面(带樱花)" #推送到本地仓库,-m后面跟表述信息
[root@developer test-project]# git push origin #推送到远程仓库
4.3 版本切换

查看控制台输出,构建成功

访问页面,可以看到Jenkins自动发布成功

这种方式也可以进行版本回退,我这里就不演示, 想要切换到哪个版本就选择相应的版本然后构建即可
注:
文中若有疏漏,欢迎大家指正赐教。
本文为100%原创,转载请务必标注原创作者,尊重劳动成果。
求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~