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

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

相关推荐
ganshenml12 小时前
【GIT】Git 本地无法识别远程分支的原因与解决方法 not a valid ref
大数据·git·elasticsearch
lizz66612 小时前
在Git提交中,常见的提交类型(基于Angular提交规范,已被广泛采用)
git
涵涵(互关)12 小时前
git基础操作(按图一步一步来,有案例)
git
我是苹果,不是香蕉13 小时前
git remote报错解决办法
git
SHIPKING39314 小时前
【git命令操作指南】
git
LT_102914 小时前
如何初始化一个本地的项目到远程git仓库?
git·源代码管理
小付爱coding15 小时前
Claude Code安装教程【windows版本】
java·git·python
BIBI204915 小时前
Windows 下 Git 常规操作教程:命令行与 TortoiseGit
windows·git·tortoisegit·配置·版本控制·入门指南
The Straggling Crow18 小时前
熟练版本控制 (Git)、CI/CD 流程。
git·elasticsearch·ci/cd