解决Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题

Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题

  • 项目问题
  • 问题描述
  • 解决方案
  • 具体实现

项目问题

  • 在 Jenkins 中使用 Git 参数插件 进行参数化构建,具有多方面的重要性和好处。这不仅提高了构建的灵活性和透明度,还能大大提升开发和运维效率。以下是使用 Jenkins commit 列表的一些关键好处和其重要性:
  1. 灵活性和精确性

    • 选择特定版本构建:开发人员和运维人员可以选择特定的 Git commit、标签或分支进行构建。这对于需要回滚到之前的稳定版本、验证特定提交或进行分支构建非常重要。

    • 精确调试和测试:在调试或测试时,可以精确选择导致问题的提交进行构建和测试,迅速定位问题所在。

  2. 增强透明度和可追溯性

    • 可见的版本控制:所有的提交记录都可以在 Jenkins 中显示和选择,这使得版本控制更加透明,任何人都可以看到和选择构建哪个版本。

    • 构建历史记录:每次构建都与特定的 commit 关联,方便回溯和查看每个构建的来源和变化内容。

  3. 提高开发效率

    • 快速验证和集成:开发人员可以在 Jenkins 中选择提交后立即进行构建和测试,快速验证代码的正确性和集成效果。

    • 减少重复劳动:通过选择特定 commit 进行构建,减少了手动下载代码、切换分支和提交的繁琐步骤,提高了开发效率。

  4. 方便回归测试和部署

    • 回归测试:在发现新版本存在问题时,可以迅速回退到之前的稳定版本进行回归测试,确保问题得到有效解决。

    • 版本部署:运维人员可以选择特定的 commit 进行部署,确保部署的版本是经过验证和测试的,降低了发布风险。

  5. 支持复杂的构建需求

    • 多分支构建:支持对多个分支进行并行构建和测试,满足复杂的开发和集成需求。

    • 多环境构建:通过选择不同的 commit 或分支,分别构建和部署到不同的环境(如开发、测试、生产),确保各个环境的版本一致性和稳定性。

问题描述

  • 在 Jenkins 中,如果使用 Git 参数插件(Git Parameter Plugin)来选择 Git 标签或修订号进行参数化构建,有时可能会遇到拉取 commit 列表非常慢的问题。这通常是因为在拉取这些信息时,需要克隆整个项目,特别是当你的连接速度较慢或项目很大的时候,这个过程会非常耗时。
    在这里插入图片描述

在这里插入图片描述


解决方案

在大多数情况下,我们只需要部署最新的 commit 版本,只有在需要回滚时才会采用以前的 commit。因此,可以通过提供按 commit 版本和最新分支两种构建方式,提高部署效率和灵活性。以下是优化后的详细描述:

提供按 Commit 版本和最新分支两种构建方式的好处

  1. 部署最新版本的效率

    • 直接部署最新版本:在大多数情况下,开发和运维团队只需要部署最新的代码版本。在这种情况下,通过 Jenkins 可以直接选择最新 分支进行构建和部署,而不需要等待加载完整的 commit 列表。这种方式大大减少了部署的等待时间,提升了部署效率。

    • 实时性和及时性:直接使用最新版本进行部署,确保最新的功能和修复能够及时发布,满足快速迭代和持续交付的需求。

  2. 版本回滚的灵活性

    • 选择特定 commit 版本:在需要进行版本回滚时,可以通过 Jenkins 提供的 commit 列表选择特定的 commit 进行构建和部署。这种方式确保在出现问题时,能够迅速回退到之前的稳定版本,减少对生产环境的影响。

    • 问题定位和修复:通过选择特定的 commit 版本,可以精确定位和验证引入问题的提交,快速进行修复和重新部署。

具体实现

在 Jenkins 中,采用 Extended Choice Parameter 插件,可以实现按需选择构建最新 commit 或从 commit 列表中选择特定版本的功能。通过设置选项 LatestCommit,当选中该按钮时,可以直接选择构建最新 commit,无需等待列表获取;未选中时,则使用 commit 列表拉取的方式。以下是具体的实现方法:

  1. 安装 Extended Choice Parameter 插件
  • 登录到 Jenkins 的管理界面,导航到 “Manage Jenkins” -> “Manage Plugins”。

  • 在 “Available” 标签页中搜索 “Extended Choice Parameter” 插件并安装。

  1. 配置构建参数
  • 在需要配置的 Jenkins Job 中,导航到 “配置”(Configure)页面。

  • 在 “This project is parameterized” 部分,添加一个 “Extended Choice Parameter” 类型的参数。

  1. 配置 LatestCommit 选项
  • Name:设置参数名称,例如 LatestCommit。
  • Description:设置描述,例如 选择 true 构建最新 commit,无需等待列表获取;选择 false 使用 commit 列表。
  • Parameter Type:选择 Boolean Choice Parameter。
  • Value Choices:添加两个值:true 和 false。
  • Default Value:可以设置默认值为 false。
    在这里插入图片描述
  1. 安装 Git Parameter 插件
  • 登录 Jenkins 管理界面,导航到 “Manage Jenkins” -> “Manage Plugins”。
  • 在 “Available” 标签页中搜索 “Git Parameter” 插件并安装。
  1. 配置选择 commit 版本的参数
  • 添加一个 Git Parameter 类型的参数。
  • Name:设置参数名称,例如 commit。
  • Description:设置描述,例如 选择提交仓库的commit版本。
  • Type:选择 修订(commit)。
  • Branch:指定要拉取 commit 的分支,例如 origin/test。
    在这里插入图片描述
  1. pipeline脚本
pipeline {agent anyenvironment {// 仓库地址和IDcredentialsId = 'xxxxxxxxxxxxxxx'url = 'http://xxxxx/xxxx/xxxxxxx.git'// git分支名称branch = 'master'}stages {stage('拉取代码') {steps {script {def branchesConfig// 判断是否是最新提交if ("${LatestCommit}" == "true") {branchesConfig = [[name: "refs/heads/${branch}"]]  // 使用分支} else {branchesConfig = [[name: "${commit}"]]  // 使用特定的提交}// 执行 Git 拉取操作checkout([$class: 'GitSCM',branches: branchesConfig,doGenerateSubmoduleConfigurations: false,extensions: [],userRemoteConfigs: [[credentialsId: "$credentialsId", url: "$url"]]])}}}}  }
  1. 优化后的效果
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14102.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

黑马智数Day7

获取行车管理计费规则列表 封装接口 export function getRuleListAPI(params) {return request({url: parking/rule/list,params}) } 获取并渲染数据 import { getRuleListAPI } from /apis/carmounted() {this.getRuleList() }methods: {// 获取规则列表async getRuleList(…

员工电脑怎么监控?这些电脑监控软件必备

在当今远程办公、灵活工时盛行的时代,如何掌握员工的在线活动、确保工作效率和数据安全成为许多企业关注的焦点。电脑监控软件作为管理工具中的关键一环,可以有效帮助企业了解员工的在线行为,避免效率低下和数据泄露等风险。今天我们就来介绍…

学习干货|实战学习应急响应之Windows日志分析,网络安全零基础入门到精通教程!

前言 本次环境将从大赛内与实战环境相结合去了解在应急响应中Windows日志分析的几个关键点,符合大赛及真实环境案例,本次环境将从WEB层面的日志分析到主机内的几种关键日志分析和重点功能进行排查 题目描述:某台Windows服务器遭到攻击者入侵…

零基础光伏人,数据计算轻松拿捏

在可再生能源领域,光伏产业以其清洁、可再生的特点日益受到全球关注。然而,对于初学者或“零基础光伏人”而言,光伏项目涉及的一系列数据计算和专业知识往往显得复杂而难以入手。幸运的是,随着技术的进步,一系列光伏计…

一文搞懂链表相关算法

目录 链表的逆序和截断 逆序 截断 查找链表的中间节点 力扣题 博主主页:东洛的克莱斯韦克-CSDN博客 链表的逆序和截断 逆序 推荐使用头插法逆序,首先要 new 一个虚拟头节点——newNode。如下图 链表的头节点为head,由cur指针指向head&a…

红外热成像技术开启光伏检测新视界

随着全球对可再生能源需求的不断增加,光伏发电系统的应用日益广泛。然而,光伏组件在长期运行中可能会出现各种故障,如热斑效应、隐裂、接线盒故障等,这些问题不仅影响光伏系统的发电效率,还可能引发安全隐患。 红外热成…

基于vue框架的的社区智慧养老系统1mo30(程序+源码+数据库+调试部署+开发环境)

系统程序文件列表 项目功能:老人,员工,老人档案,养生视频,社区医生,就医信息,在线咨询,咨询回复,菜品信息,点餐订单,服务预约,通知信息,服务评价,健康关爱,新闻公告,监控日志 开题报告内容 以下是一份基于Vue框架的社区智慧养老系统的开题报告,详细阐述…

龙蜥8.6 配置用户登录次数和锁定策略(已亲测)

操作系统:龙蜥8.6 x86_64 查看是否安装pam模块 rpm -qa | grep pam 查看可以使用的认证模块,因为有的系统是pam_tally2. cd /etc/pam.d ls 经过查看,该服务器是使用的pam_faillock 模块 打开/etc/pam.d/password-auth 的 PAM 配置文件…

【6.4】位运算-判断是否存在重复元素

一、题目 给定一个整数数组,判断 是否存在重复元素 。如果存在一值在数组中 出现至少两次 ,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [ 1 , 2 , 3 , 1 ] 输出: true 示例 2: 输入: [ 1 , 2 , 3 , 4 ] 输出…

PCB打样下单流程

PCB打样下单流程 一、PCB打样在线下单流程1.平台登录2.PCB打样领券3.进入下单系统4.上传PCB文件5.PCB订单界面 PCB(印刷电路板)打样是验证设计、优化性能和推进项目进度的关键环节。随着互联网的…

Python爬虫知识体系-----正则表达式-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新:https://blog.csdn.net/grd_java/article/details/140574349 文章目录 一、正则基础1. 为什么使用正则2. 正则与re模块简介 二、正则表达式1. 匹配单个字符与数字2. 限定符3. 定位符4. 选择匹…

yolo标签自动标注(使用python和yolo方法)

yolo代码自动标注 1.引言1.初阶“自动标注”,给每个图像都生成一个固定的标注文件,进而在labglimg中对矩形框进行微调,减少标注的工作量2.高阶自动标注,利用我们训练好的(但是没有特别精准的)yolo文件先对每…

在 WPF 中,如何使用命令来替代事件处理?

在 WPF(Windows Presentation Foundation)中,命令是一种非常强大的替代传统事件处理的方法,特别适用于 MVVM(Model-View-ViewModel)架构。命令可以实现界面(View)和逻辑(…

语音 AI 革命:未来,消费者更可能倾向于与 AI 沟通,而非人工客服

「未来,消费者更可能倾向于与 AI 沟通,而非人工客服,因为这将成为解决问题的最高效途径。」 这篇来自 Bessemer Venture Partners 的报告,是目前为止对语音 AI 在企业应用上最完整清晰的一次梳理。 核心要点: 尽管市…

过去几年电子学习的趋势

近年来,在技术和不断变化的学习者期望的推动下,电子学习已经发展成为一种适应性强、沉浸式和社会化的教育形式。个性化已成为最具影响力的趋势之一,Coursera和LinkedIn Learning等平台为个人量身定制内容。这些平台使用人工智能来建议课程、跟…

Java基础-Java多线程机制

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、引言 二、多线程的基本概念 1. 线程与进程 2. 多线程与并发 3. 多线程的优势 三、Java多线程的实…

springboot 之 整合springdoc2.6 (swagger 3)

版本 springboot 3.3.5 jdk 17 springdoc 2.6.0 依赖pom <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version> </dependency>注解对比…

Zabbix部署

1.集群规划 进程虚拟机节点1虚拟机节点2虚拟机节点3zabbix-agent√√√zabbix-server√PostgreSQL√zabbix-web√ 2.准备工作 默认在虚拟机节点2安装kafka、在虚拟机节点3安装redis 2.1关闭3台节点防火墙 sudo systemctl stop firewalld.service sudo systemctl disable fi…

如何优化锚文本来提升关键词排名?

锚文本在SEO中是个小细节&#xff0c;但作用可不小。它不仅能影响外链的质量&#xff0c;还直接影响你的目标关键词排名。你要知道&#xff0c;锚文本并不是随便加上就行&#xff0c;它得讲究技巧和策略。 锚文本的关键词选择一定要精准&#xff0c;且与页面内容高度相关。比如…

java项目-jenkins任务的创建和执行

参考内容: jenkins的安装部署以及全局配置 1.编译任务的general 2.源码管理 3.构建里编译打包然后copy复制jar包到运行服务器的路径 4.部署任务&#xff0c;执行部署脚本