配置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的代码(最新)发布

相关推荐
逻极6 小时前
Jenkins 从入门到精通:CI/CD自动化流水线实战
ci/cd·自动化·jenkins·devops
炸炸鱼.6 小时前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
无人生还别怕12 小时前
搭建jenkins服务并接入openldap认证
运维·jenkins
Java 码思客1 天前
【ElasticSearch从入门到架构师】第3章:ES 核心基础概念(架构师必备底层认知)
大数据·elasticsearch·jenkins
X1A0RAN1 天前
Jenkins流水线日志彩色打印输出
运维·jenkins
炸炸鱼.1 天前
Git+Jenkins 基本使用:从入门到实战(知识点大全)
运维·git·jenkins
wangyadong3171 天前
rancher 安装jenkins 。国内镜像太头疼
servlet·jenkins·rancher
cgsthtm1 天前
Jenkins添加用户和角色并分配相应Job权限
运维·jenkins·jenkins用户·jenkins角色·jenkins权限·jenkins job
mnasd1 天前
Gitlab + Jenkins 实现 CICD
运维·gitlab·jenkins
开发者联盟league2 天前
使用Jenkins整合Sonarqube/Gitlab/Harbor/Kubernetes的Demo工程
kubernetes·gitlab·jenkins