配置Jenkins使用tag发布

背景

Jenkins 2.528.3 LTS 安装Git Parameter Plugin,启用"参数化构建"功能,自由风格使用tag发版做准备。

文档

官方安装文档

环境

  • 操作系统 Ubuntu24.04
  • 主服务器配置 VM 16C/64G/800G
  • Jenkins版本 2.528.3 LTS
  • Java版本 JDK21

目标

  • 生产环境适应 tag 发布
  • 测试环境适应 branch 或 tag 发布

安装插件

  1. Jenkins-->ManageJenkins-->Plugins-->Available plugins 下搜索"Git Parameter",点击进行安装
  2. 安装成功后 Jenkins-->ManageJenkins-->Plugins-->Installed plugins下可见

配置tag发布示例(生产环境)

  1. 示例仓库:http://192.168.5.99:8929/shijin/ops_project。
  2. 上线方式:正则匹配"sj"开头的tag(模拟生产环境tag号),选择对应的版本上线。
  3. 上线操作:点击Build with Parameters,选择tag号上线

说明:

  1. 严格规范生产环境tag的命名规则
  • tag与commit对应,与branch无关。
  • git 查看tag,会显示所有tag,包括所有branch的tag
  • jenkins使用正则匹配模式,只显示特定规则的tag(符合生产环境tag定义,本例中显示sj开头的tag)
  • 严格规范生产环境tag的命名规范,例如: prod202512220945。禁止非生产环境代码使用生产环境tag定义(研发规范约束)

用途:

  1. 测试通过的代码,打生产环境tag,发版根据tag号上线
  2. 生产环境发现严重bug,选择上一个稳定版tag号紧急回滚
  3. 修复线上一般bug,可pull某一个稳定版tag对应代码,生成临时分支,修复后merge上线(不影响正在开发的新代码)

配置

  1. jenkins添加 Git Parameter Plug-In插件 (已安装)

  2. 配置"参数化构建过程"

    • 定义参数:RELEASE_TAG 名称可自定义
    • 参数类型:标签(tag)
    • 默认值: origin/master(默认可以选择master分支)
    • 高级选项:
      • 标签过滤:设置正则匹配字符串(示例 sj开头的tag)
      • 排序方式:DESCENDING_SMART
      • 快速过滤:选中开启
  3. 配置"源码管理 "

    • 定义Branches to build:${RELEASE_TAG}, RELEASE_TAG变量名称需要与"参数化构建过程"中定义一致。

发布

  1. Build with Parameters 中选择 tag为 202411281119的commit发布

  2. 输出结果中,显示git checkout tag是sj202512251122对应commit为9977b8afe18141215d081936480a3680dcdb83ce 的代码

配置tag或branch发布示例(测试环境)

  1. 示例仓库:http://192.168.5.99:8929/shijin/ops_project。
  2. 上线方式:根据需要选择某个branch最新代码,或者某个tag对应代码上线。
  3. 上线操作:点击Build with Parameters,选择branch名称或tag号上线

说明:

  1. 为适应多种版本测试,根据需要选择branch或tag上线
  • tag与commit对应,与branch无关。
  • branch使用当前分支最新代码

用途:

  1. 可选择某个branch最新代码上线,包括:测试分支,开发分支或某个紧急修复bug分支
  2. 可选择某个tag对应代码上线,tag由研发定义,测试某个tag版本代码(注意,非生产环境上线版本打tag,禁止使用生产环境专用tag命名规范)

配置

  1. jenkins添加 Git Parameter Plug-In插件 (已安装)

  2. 配置"参数化构建过程"

    • 定义参数:RELEASE_BRANCH_TAG 名称可自定义,需要与 Branches to build中保持一致
    • 参数类型:分支或标签
    • 默认值: origin/master(默认可以选择master分支)
    • 高级选项:
      • 分支过滤: .* ,不限制分支,显示仓库所有分支
      • 标签过滤:* ,不限制标签,显示仓库所有标签
      • 排序方式:DESCENDING_SMART
      • 快速过滤:选中开启
  3. 配置"源码管理 "

    • 定义Branches to build:${RELEASE_BRANCH_TAG}, RELEASE_TAG变量名称需要与"参数化构建过程"中定义一致。

发布

  1. Build with Parameters 中选择 tag为 202411281119的commit发布
  • 202411281119 是非生产环境上线tag
  1. 输出结果中,显示git checkout tag是202411281119对应commit为99c8f025b968e94940c5d547979f4389490d2f33的代码发布

  2. 使用研发origin/shijin branch最新代码发版

  3. 输出结果中,显示git checkout origin/shijin branch 对应commit为3e49aaa3aa1f91d8455d6450a216d36d49d96f61的代码(最新)发布

相关推荐
GGG7662 天前
K8s1.28 全栈落地|Jenkins+GitLab+Harbor DevOps 流水线封神实战
kubernetes·gitlab·jenkins
叱咤少帅(少帅)2 天前
新版本jenkins的共享库的实现
运维·jenkins
2601_962297252 天前
Python、Pytest、Allure、Selenium和Jenkins实现自动化测试集成实例
python·selenium·jenkins·pytest·allure
大模型丫丫2 天前
工业级 RAG 为什么需要 Elasticsearch?
elasticsearch·django·jenkins
X1A0RAN4 天前
Jenkins 流水线跨阶段的数据共享:让变量“动态更新“成为可能
java·servlet·jenkins
Ningcode_cloud4 天前
什么是CICD? GitLab + Jenkins 持续集成实战部署手册
运维·ci/cd·云原生·容器·gitlab·jenkins
tianyuanwo5 天前
Jenkins 邮件插件选型指南:从命名原理到场景实践
jenkins·plugin·email
姚永强5 天前
安装Jenkins
运维·jenkins
成茂峰5 天前
实战:内外网隔离环境下基于 Jenkins + PowerShell 的自动化 CI 构建与邮件通知方案
ci/cd·自动化·jenkins
tianyuanwo5 天前
Jenkins Pipeline 沙箱与非沙箱:CPS、序列化与白名单的深度解读(含 `take()` 与 `subList()` 实战对比)
pipeline·jenkins·groovy·take·sublist