Jenkins配合git构建持续构建流程

news2024/11/18 1:49:45

作者:朱金灿
来源:clever101的专栏

为什么大多数人学不会人工智能编程?>>> hot3.png

理解CI

  CI(Continuous Integration)翻译成持续集成,是指在源代码变更后自动检测、检出、构建、自动化测试到发布的过程。常见的开源CI工具有Jenkins、Hudson。商业的有TeamCity等。
持续集成的好处:
a.提高开发效率。持续集成可以把一部分工作比如软件打包、接口测试都交给CI工具。
b.快速发现并定位Bugs。持续集成首先可以快速确认代码能否编译通过,其次可以集成自动化测试快速发现软件缺陷。
c.更快速的发布更新。因为持续集成能取代编译、测试和打包等一系列原来人工手动做的工作,从而能大大节省人力。

Jenkins的安装

  安装Jenkins之前必须先安装JDK, Jenkins的运行依赖于JDK。Jenkins的安装有两种方式。

  1. Windows安装包的方式。具体到网站上下载Jenkins的安装包,然后按照应用软件的方式一步步提示安装。这种方式本质是在Windows创建一个Jenkins长驻服务进程。
  2. Java命令运行war包的方式。具体到网站上下载Jenkins的war包,然后执行命令:
java -jar jenkins.war --httpPort=9090

  推荐使用第二种方式,因为第一种方式一是你可能没有权限去启动一个Windows服务程序;二是具体版本的Jenkins对依赖的JDK版本有限制,如果安装了不兼容的JDK导致服务启动不起来都无法知道出错信息,而使用第二种方式一旦出错它会告诉你兼容的JDK是哪个版本。
  安装完Jenkins就可以通过浏览器访问它了:
http://192.168.10.106:9090/
  它是长这个样子的:
Jenkins outlook
安装了Jenkins后还得安装后面用到的插件。安装插件有两种方式:
1.批量安装模式:将已有的Jenkins的安装目录下的plugins文件夹下的文件都拷贝到新安装的Jenkins的安装目录。网上也有Jenkins的插件压缩包下载。从网上下载插件压缩包,然后拷贝到Jenkins的安装目录下的plugins文件夹(Java命令运行war包的方式的是在C:\Users\username.jenkins\plugins, username就是之前安装Jenkins所用到的系统用户名)。这个是批量安装Jenkins插件的方式。
2.单个插件安装模式。就是从Jenkins官网上下载对应的插件文件然后上转到Jenkins上部署。比如我要安装一个msbuild的插件,就在官网上下载一个msbuild.hpi(用到msbuild工具都需要安装这个插件)。
然后打开Jenkins网址:http://192.168.10.106:9090/
选择Manage Jenkins:
Manage Jenkins

然后选择Manage Plugins:
Manage Plugins
再上传msbuild插件:
上传msbuild插件

Jenkins的使用

  如上所述,我们使用Jenkins主要是为特定的软件创建一个持续构建的项目。
  首先要确保持续构建的机器必须安装有完整的代码检出工具和编译环境。这次我们用到的git和VisualStudio2017就必须安装好。
  其次为Jenkins的全局工具进行配置。主要是两种:代码检出工具和代码编译工具。代码检出工具现在主要用git,代码编译工具主要用msbuild (编译VisualStudio的VC工程和C#工程都需要用到msbuild)。
选择Manage Jenkins:
Manage Jenkins
选择Global Tool Configuaation:
Global Tool Configuaation
设置Git的路径:
设置Git的路径
设置msbuild的路径:
设置msbuild的路径
vs2017build
  注意,这里可以项目的需要添加多个msbuild,比如一个软件既要VS2017编译也要VS2019编译,就可以添加多个msbuild了。
  完成了全局工具设置后就可以创建持续构建项目了。
单击首页面板上的New Item,如下图:
New Item
输入项目名称:
fill ProjectName
输入项目描述:
fill ProjecyDescription
设置git仓库地址:
git repository url
在上图的Credentials中选择Jenkins输入git仓库的账户和密码,如下图:
credentials
git username and pwd
选择代码签出的本地目录:
check out a sub-directory
local checkout dir
设置编译环境:
Build Environment
最后点击保存按钮:
save setting
现在可以运行这个持续构建项目了,单击面板中build now按钮,如下:
build now
这时产生一个进度条:
build progress
单击进度条可以在网页上看到控制台输出,如下图:
console output

Jenkins的后续使用设想

1.后续需要补上解算解码接口的自动化测试、软件打包步骤、软件发送到共享文件夹和代码质量检查等。这个取决于业务需要。
2.Jenkins的构建触发条件可以是有代码提交就触发构建以及每日定时构建。提交代码就触发构建好处是可以随时检查提交的代码是否能编译通过。每日定时构建简称每日构建,就是将每天提交的代码都编译成一个软件测试版本,适合于每天都有代码提交的软件。需要给不同的软件选择不同的触发条件。

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

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

相关文章

Go类型与进制

iota:总是从0开始,递增为1的整数 一、进制 二进制0b1001000 0100 1000 八进制 0o110 01 001 000》 1 * 8^21 * 8^10 * 8^072 十六进制0x48 0100 1000 十进制转二进制 除以基数2,直到商为0为止,反向提取余数。 转为十六进制 除以基…

机器视觉(六):频域图像增强

目录: 机器视觉(一):概述 机器视觉(二):机器视觉硬件技术 机器视觉(三):摄像机标定技术 机器视觉(四):空域图像增强 …

【云原生】Grafana Alerting 告警模块介绍与实战操作

文章目录一、概述二、Grafana Alerting 模块介绍三、配置图表四、告警告警规则五、配置告警通道(Contact points)1)Email1、配置smtp(grafana.ini)2、配置消息模板3、配置告警通道2)WebHook1、编写webhook …

【问题记录与解决】TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

目录 一、报错内容二、尝试再运行(最终解决)一、报错内容 先来看报错截图: 再往上看看: 程序其实是正确执行了一部分的,可以看出首次运行时,是需要下载一些东西的。 二、尝试再运行(最终解决) 所测试的代码如下: # 昵 称:XieXu # 时 间: 2022/12/24/0024 18:44 fr…

刷机-把机顶盒当服务器使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为啥要刷机顶盒什么?二、使用步骤1.拆机2.准备下载工具3.准备烧录软件和固件4.烧录5.如何使用总结前言 今天给大家分享一篇关于如何把机顶盒刷机…

国考省考行测:接语选择题,接下来最可能讲,上文可能谈,引言可能谈,有过渡句,看新主体,无过渡句,看主旨意思

国考省考行测:接语选择题,接下来最可能讲,上文可能谈,引言可能谈,有过渡句,看新主体,无过渡句,看主旨意思 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能…

vue3 +ts 第二篇

1.watch watchEffect 监听汇总 watchwatchEffect默认情况是惰性的,也就是说仅在侦听的源数据变更时才执行回调。不需要手动传入依赖更明确哪些状态的改变会触发侦听器重新运行副作用;会先执行一次用来自动收集依赖获取到侦听状态变化前后的值。无法获取…

【概念理解】内存对齐问题详述

内存之对齐,一文即可知 文章目录内存对齐1.概述2.如何进行内存对齐3.位域对齐大端存储与小端存储1.基本概念参考博客😊点此到文末惊喜↩︎ 内存对齐 1.概述 定义(什么是内存对齐) 编译器为程序中的每个数据单元安排在适当的位置…

【深入浅出Spring原理及实战】「开发实战系列」OAuth2的技术体系架构和开发概览

背景介绍 主要实现 OAuth2的三种授权模式:密码模式、客户端模式和授权码模式,包括展示授权服务器、资源服务器、客户端等几种角色的交互,以及JWT的整合。并且每个实例都提供两个代码版本:一个是基于旧的 Spring Security OAuth2 …

基于java学生成绩管理系统

开发工具eclipse,jdk1.8 技术:java swing 数据库:mysql5.7 学生选课系统功能:管理员、教师、学生三个角色 一、管理员功能: 1.登录、修改密码、退出系统 2.学生管理:添加、修改、删除、查询 3.班级管理&#x…

python文件夹拷贝思路

最近在做项目中,要使用python,对文件拷贝有了一些了解,这里将自己理解的文件拷贝整理出来。 如下所示,文件拷贝思路: 文件拷贝,从io上来说就是读文件,写文件到另一个指定的地方。 拷贝&#xff…

MXNet的Faster R-CNN(基于区域提议网络的实时目标检测)《1》

原论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 开源代码:https://github.com/ijkguo/mx-rcnn Parallel Faster R-CNN implementation with MXNet,使用MXNet实现快速并行的区域提议的卷积神经网络…

[oeasy]python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程

查看进程 回忆上次内容 上次先ctrl z 挂起进程 然后运行 bg程序继续跑起来而且不断输出到标准输出流甚至连ctrl c 都无法结束进程了这可怎么办呢?只能新开一个终端想办法 查询进程 搜索 debian进程查询找到具体方法 进程 具体方法动手试试 新开一个终端 运行ps…

新冠阳性的第五篇博客,宝塔面板如何快速部署一个SpringBoot项目

宝塔面板如何快速部署一个SpringBoot项目1.删除旧版本的Java2.安装Java3.配置Java环境变量4.宝塔快速部署1.删除旧版本的Java 删除旧版本的Java,防止对我们的服务产生影响! 如果你的服务器上没有下载过Java,则跳过此步骤! 查找…

【K3s】第1篇 K3s入门级介绍及架构详解

目录 1、什么是 K3s? 2、为什么叫 K3s? 3、适用场景 4、架构详解 单节点架构 高可用架构 K3s高可用架构: 固定 agent 节点的注册地址 注册 Agent 节点 1、什么是 K3s? K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计算、物联网等场景进…

SpringBoot图文详解 | 系统性学习 | 无知的我费曼笔记

无知的我复盘,顺便上传笔记。 对比Spring,SpringBoot 其实就是简化了固定的开发步骤。如坐标、Web3.0配置类、配置类 文章目录1 SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.…

【问题记录与解决】OSError: [WinError 127] 找不到指定的程序。

目录 一、报错记录二、尝试解决(已解决)2.1 先 卸载掉 几个与torch相关的模块2.2 重新下载几个模块,并分别安装一、报错记录 首先来看报错的截图: 报错的具体代码,可以看这里,和这里使用的一样的: 【Pytorch_Geometric】(GCN)基本使用:数据集与邻接矩阵格式,图形(…

河道水尺水位监测系统 基于opencv

河道水尺水位监测系统基于pythonopencv对现场画面中水位进行实时监测,当监测到画面中水位异常变化时,立即抓拍存档同步回传图片给后台。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简…

用Python写个实用工具 - TheFuck(命令纠正工具)

前言 哈喽啊,我亲爱的铁铁们,I am back ! 别管,我也是阳过的人了,这么久都没有更新,今天就带来个小玩意吧 我们在学习python的时候,有个小工具,是可以纠正我们写错的命令 The Fu…

React封装一个纯CSS实现的水滴样式的盒子

背景 刷B站刷到一个纯css实现的水滴效果的视频 感觉真不错,决定封装一个具有水滴效果的盒子(DIV) 涉及知识点 CSS样式,核心是这个和box-shadow阴影,实现水滴boder和阴影效果。JS控制CSS样式16进制的颜色(…