【Jenkins 参数化构建实战指南:基于机器环境与插件配置,详解 tag 标签管理、commit 修订号应用、版本切换及回退全流程】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

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%原创,转载请务必标注原创作者,尊重劳动成果。

求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

相关推荐
无限进步_2 小时前
C++ Vector 全解析:从使用到深入理解
开发语言·c++·ide·windows·git·github·visual studio
charlee442 小时前
Git使用经验总结9-Git提交关联到Issue
git·issue
顾安r2 小时前
12.27 脚本网页 GITHUB推送教程
linux·css·html·gitlab·github
-拟墨画扇-3 小时前
Git | Bug分支操作
git·gitee·github·bug·gitcode
Rhys..4 小时前
Jenkins配置GitHub token教程
运维·github·jenkins·ci
-拟墨画扇-5 小时前
Git | Feature分支操作
git·gitee·github·gitcode
无限进步_5 小时前
C++多态全面解析:从概念到实现
开发语言·jvm·c++·ide·git·github·visual studio
henreash5 小时前
windows下git的hooks
git
无限进步_5 小时前
C++ STL list容器深度解析与模拟实现
开发语言·数据结构·c++·windows·git·list·visual studio
sinat_3842410915 小时前
HarmonyOS音乐播放器开发实战:从零到一打造完整鸿蒙系统音乐播放器应用 2
华为·gitlab·intellij-idea·harmonyos·visual studio·webstorm