【Jenkins使用】Jenkins 与 Git

news2025/1/30 16:06:07

一、概述

Jenkins 与 Git 的结合使用,可以理解为是 Jenkins 的一个强大之处。为什么要这么说,简要说明一下这个工作模式就能理解: 一个软件项目,开发过程中通常都会使用到一些源码管理工具,来达到团队协作的目的。而 Jenkins 所能实现的功能是,待开发人员将代码提交到源码管理工具中,通过提前设计好的 Jenkins 构建策略等,可以实现一键测试、部署等等。开发人员所要做的就是提交代码至仓库,其余的工作可以交给 Jenkins 完成。

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

自动化测试篇—实战案例:自动化及接口自动化本质及适用场景

二、具体操作

准备工作:

1、部署 Jenkins 的主机上要安装 Git,安装成功后,可以通过whereis命令获取到 Git 的安装路径。

2、准备好另外一个服务器,Jenkins 将通过节点方式对其实现远程操作。(只使用部署了 Jenkins 这一个服务器进行这个示例也是可行的,即这个服务器即部署了 Jenkins 也“承担”部署软件项目)

3、一个远程的源码仓库。GitHub、GitLab、Gitee 等均可。

4、上传一个 HTML 文件到这个远程仓库(上传至master分支即可)

一个远程的源码仓库并上传一个 HTML 文件

5、在远程服务器中安装好并开启 Tomcat,将通过 Jenkins 将这个 HTML 文件部署至远程服务器的 Tomcat 中。

流程:

流程

注意:上述的操作仅是简单示例,可能会有不合适的地方。

1、通过whereis命令在部署了 Jenkins 的服务器上获取到 Git 的安装路径。在 Jenkins 主页(首页)点击左侧的“系统管理”,再点击“全局工具配置”,进入“全局工具配置”页面:

全局工具配置

2、填写有关 Git 的配置:Name自定义;Path to Git executable为git命令的路径,可以通过whereis git命令得到;“自动安装”不要勾选。配置后保存。

配置 Git

3、新建一个项目(选择“构建一个自由风格的软件项目”即可),进入该项目的配置页面,进行一些常规配置:

常规配置 - 配置构建该项目所要使用的节点

4、进行项目配置中的“源码管理”配置,配置后保存:

源码管理 

​源码管理

  • 勾选Git;
  • 输入远程仓库的 URL,注意这个 URL 是 Clone 操作(git clone)所用的那个 URL;
  • 凭据,与创建、配置“节点”时类似,已经添加过就直接选择,没有的话就添加。添加的话一般常用的就是Username with password、SSH Username with private key这两种类型。Username with password就是配置你远程源码仓库的用户名和密码,比如 GitHub 的用户名和密码。SSH Username with private key就是使用密钥对,使用的前提是需要将部署了 Jenkins 的服务器中的密钥对中的公钥($User_home_directory/.ssh/······_pub)配置在远程源码仓库中,然后“凭据”中配置密钥对中的私钥;
  • 指定分支,根据实际情况;

Additional Behaviours:有很多选项供选择,类似于“构建策略”,但一般是执行在“构建策略”之前。这里选择的是“检出到子目录”,作用是从远程仓库拉取代码到本地,作用类似于git clone命令。所以,需要先在远程服务器上建立一个本地仓库目录。

5、保存项目配置,立即构建,先测试是否能从远程仓库拉取代码到本地:

构建后控制台输出 

查看本地源码仓库

​上面的图说明,Git 的配置是成功的。

6、编写一个简单的用于部署的 Shell 脚本,重新回到项目的配置中,新增“构建策略”,选择“执行 Shell”,编写一个将这个 HTML 文件拷贝至 Tomcat 中的webapps/jenkins/目录下,重命名为jenkins.html。保存配置:

简单的部署脚本

7、先进行一次构建,一来看看 Shell 脚本是否正常运行,二是看看 HTML 页面的效果,便于与修改后区分:

HTML 页面效果

8、在 Windows 中拉取代码,编辑 HTML,来模拟开发场景,修改后提交再提交至远程仓库:

修改后提交至远程仓库 

提交详情

9、再次构建,构建成功后刷新浏览器页面:

执行构建后刷新

综上,便是一个较为完整的 Jenkins 与 Git 结合使用。

三、补充

上述只是简单的示例。现实中,不论是项目复杂程度、部署的环境、部署所编写的脚本等都比示例复杂的多。希望先通过这样简单的示例,了解 Jenkins 可以与 Git 结合使用,并且对 Jenkins 可以自动拉取远程仓库中的代码并且实现部署这种常规操作不再“怀疑”即可。

最后祝大家都能找到心仪的工作,快乐工作,幸福生活,广阔天地,大有作为。PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G【点击文末小卡片免费领取】

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了! 

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

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

相关文章

C++ --STL

STL STL(Standard Template Library,标准模板库)STL从广义上分为: 容器(container)算法 (algorithm)迭代器 (iterator) 容器 和 算法之间通过迭代器进行无缝连接。STL几乎所有的代码都采用模板类或者模板函数 1、ST…

SystemC入门学习-第8章 测试平台的编写

之前的章节,一直把重点放在用SystemC来描述硬件电路上,即如何编写SystemC 的RTL。本章的注意力集中在验证和编写测试平台上。 重点包括: 如何生成时钟信号和激励波形如何编写有响应能力的测试平台如何记录仿真结果 8.1 编写测试平台 测试平…

【Shell】Shell脚本入门

Shell脚本入门 疑问 linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等? 答: 使用linux的内核操作计算机的硬件 Shell介绍 通过编写Shell命令发送给linux内核去执行, 操作就是计算机硬件. 所以Shell命令是用户操作计算机硬件的桥梁, Shell是命令, 类似于windows系统…

Java 抽象类与接口

一、抽象类 1.1 抽象类的声明 可以这样认为,抽象类就是普通类抽象化的结果,它与普通类相比,同样具有属性、方法等,唯一的区别就是抽象类具有抽象的效果,即无法被实例化(如果可以被实例化,就失…

源代码漏洞监测【软件代码缺陷性检测】

本文仅供思路参考、交流 一、题目要求 利用树、图、序列等对软件源代码进行代码表征。利用深度学习实现对代码有无漏洞的分类实现检测漏洞类型调研过程 调研了一些论文,发现目前的一些论文,例如FUNDED、SemVulDet、SEVulDet、SySeVR都只能实现二分类,即有无代码漏洞,但是这…

qgis c++二次开发初始化介绍

前言 上篇文章qgis二次开发环境搭建(qgis-3.28.6qt5.15) 的末尾介绍了如何新建一个Qt工程,链接QGIS库并调用Qgis::releaseName(),工程代码在仓库qgis_cpp_api_apps中。 但是要调用更复杂的QGIS函数需要添加一些初始化函数,下边将介绍如何初…

【JUC】JMM

文章目录 1. 概述2. 三大特性2.1 可见性2.2 原子性2.3 有序性 3. 多线程对变量的读写过程4. 先行发生原则(happens-before) 1. 概述 CPU的运行并不是直接操作内存而是先把内存里边的数据读到缓存,而内存的读和写操作的时候就会造成不一致的问题 JVM规范中试图定义…

MoeCTF2023web

01http 打开题目环境 可以看到要求完成所有任务,这里用burp抓个包 按照要求修改可以得到flag moectf{basic_http_knowledge_HJbg427uFuznTqiJdtS1xhZNwpdsOnKU} 02 Web入门指北 直接找到结尾发现乱码,去解码 编码可以试试url编码和base64到16 这里用…

RISCV学习(2)玄铁C910处理器体验

笔者有幸参加了平头哥RISCV开发者大赛,体验了一下基于玄铁C910内核的矽速开发板。 1、开发板介绍 LicheePi 4A 是基于 Lichee Module 4A 核心板的 高性能 RISC-V Linux 开发板。 TH1520 为主控核心(4xC9101.85G, RV64GCV,4TOPSi…

毕业图形采集【个人】

毕业图形采集【个人】 前言版权推荐毕业图形采集介绍步骤如何查看个人二维码 最后 前言 2023-10-15 12:09:57 以下内容源自《【个人】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://blog.csdn.ne…

【C++】笔试训练(六)

目录 一、选择题二、编程题1、不要二2、把字符串转换成整数 一、选择题 1、十进制变量i的值为100&#xff0c;那么八进制的变量i的值为&#xff08;&#xff09; A 146 B 148 C 144 D 142 答案&#xff1a;C 2、执行下面语句后的输出为 int I 1; if (I < 0)printf("…

LightGBM-平分卡

文章目录 一、数据集处理二、定义模型训练和画图 三、好人的概率/坏人的概率四、生成报告五、行为评分卡模型表现总结 一、数据集处理 import pandas as pd from sklearn.metrics import roc_auc_score,roc_curve,auc from sklearn.model_selection import train_test_split f…

【无人机】太阳能伪卫星VoLTE无人机设计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

蓝桥杯(迷宫,C++)

输入&#xff1a; 思路&#xff1a; 1、注意输入用字符串。 2、采用广度搜素的方法来求解。 3、因为最后要求字典序最小且D<L<R<U,所以在遍历四个方向的时候&#xff0c; 先向下&#xff0c;再向左、右&#xff0c;最后向上。 #include<iostream> #include…

“历史性判决:SEC 放弃上诉!灰度赢得比特币ETF转换!“

"这一决定是在一场法律战和数月的预期之后做出的&#xff0c;可能标志着监管格局将转向批准现货比特币ETF。" 据路透社报道&#xff0c;一项重大进展是&#xff0c;美国证券交易委员会 (SEC) 决定不对最近法院支持 Grayscale Investments 比特币 ETF 转换计划的…

Python算法练习 10.15

leetcode 2130 链表的最大孪生和 在一个大小为 n 且 n 为 偶数 的链表中&#xff0c;对于 0 < i < (n / 2) - 1 的 i &#xff0c;第 i 个节点&#xff08;下标从 0 开始&#xff09;的孪生节点为第 (n-1-i) 个节点 。 比方说&#xff0c;n 4 那么节点 0 是节点 3 的孪…

Hadoop3教程(九):MapReduce框架原理概述

文章目录 简介参考文献 简介 这属于整个MR中最核心的一块&#xff0c;后续小节会展开描述。 整个MR处理流程&#xff0c;是分为Map阶段和Reduce阶段。 一般&#xff0c;我们称Map阶段的进程是MapTask&#xff0c;称Reduce阶段是ReduceTask。 其完整的工作流程如图&#xff…

(十一)Powershell调用java实验

先随便写个java类 package demo;public class Test {public static void main(String[] args) {int ret 123;System.out.println(ret);}}2.打包 直接结束&#xff0c;生成jar包 3.powershell调用 $p Start-Process java -ArgumentList -jar /Users/sixdog/Documents/windo…

基于Jaya优化算法的电力系统最优潮流研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【问题思考总结】为什么一点的泰勒展开可以在任意点逼近函数?【泰勒公式 泰勒定理的适用范围】

泰勒公式&#xff08;带皮亚诺余项的n阶泰勒公式&#xff09;指出了在一点可以用泰勒公式拟合出多项式函数进行无穷逼近&#xff0c;而因为只用到了一点n阶导数值&#xff0c;因此在该点n阶可导即可&#xff0c;是关于一个点的定性分析&#xff0c;一般用于求极限。 泰勒定理&…