使用jenkins进行自动化部署

news2024/11/25 12:52:50

记录一下查看的文档和遇到的坑

什么是jenkins

Jenkins是一个开源的持续集成(CI)和持续交付(CD)工具,主要用于自动化软件开发的各个阶段,包括构建、测试、部署等。

Jenkins基于Java开发,支持与多种版本控制系统(如Git、SVN)、构建工具(如Maven、Ant、Gradle)和软件配置管理工具的集成。它提供了一个友好的操作界面,允许开发者通过Web界面进行配置和管理,支持自动化构建和测试过程,能够监控外部任务的运行。Jenkins也支持持续集成和持续交付的理念,有助于提高软件开发的效率和减少人工错误。

此外,Jenkins可部署在多种平台(如Windows、Linux、Mac)上,并提供了消息通知、测试报告生成等功能。

什么是Gogs

Gogs,全称为Go Git Service,是一个基于 Go 语言开发的Git服务。它提供了一个类似于GitHub的界面和功能,允许您在自己的服务器上搭建私有的Git仓库和代码托管平台(类似gitlab)。

Gogs是一个轻量级的Git服务,其设计和性能优化使得它适合于小型团队和个人开发者。它具有Web界面,可以让您方便地管理和浏览仓库、处理问题、进行代码审查和管理团队成员。

1、安装:Jenkins 的安装(详细教程)

        安装我使用的是方式一,并且使用的是周更新的最新war包版本号为:2.452.3,原因是如果使用低版本的会导致自动下载的插件因为jenkins版本太低而无法使用需要一个一个的降低插件版本。jenkins历史版本。

2、Jenkins连接git

我这里使用的是公司自己服务器搭建的Gogs,如果用的是其他下载对用的插件就好了

下载插件:

在可用插件中下载插件:webhook、Nodejs(我使用的是gogs所以我下载了gogs插件,自己对应下载自己的托管仓库插件如:gitee或者github)如果是gitee下载gitee webhook 

新建项目

 创建完成后对项目进行配置

 

这里是设置最大保留多少个构建版本和最大保留天数的,因为这些都会占用内存  

 

 勾选gogs webhook 并填写,填生成的令牌,如果不勾选,下边git输入账号密码

 要么生成访问令牌,要么输入git的账号密码,我这里生成的是令牌,生成之后放入gogs secret中

绑定git地址

 打包的分支

这里因为前边下载了 webHook插件 所以会多出来一个选项

 这里有个token需要在gogs中自己写一个,主要为了安全

回到gogs的设置中仓库管理员有一个仓库设置 如果你是gitee看一下这篇文章:gitee webHook设置密匙

推送地址填写格式为:http://<jenkins地址>/generic-webhook-trigger/invoke?token=<jenkins设置的token>

 选择构建时的nodeJs版本

这里是前边下载的nodeJs插件就会有这个选项,但是不会有这个版本号,版本号是根据自己的环境下载的 下载nodeJs版本

接下来就是构建时执行的脚本了

全部命令:

cd C:\Users\31633\.jenkins\workspace\webCode\WebCode

REM 删除旧的 node_modules
rmdir /s /q node_modules

REM 安装依赖
pnpm i

REM 执行构建
pnpm run build

REM 复制构建输出到目标目录
scp -r -o StrictHostKeyChecking=no "C:\Users\31633\.jenkins\workspace\webCode\WebCode\webCodeDist\*" "greatwall@192.168.1.114:/usr/local/tomcat/webapps/newoa"

第一步先进入文件夹 C:\Users\31633\.jenkins 是 jenkins存放的目录也是当时Jenkins密码存放的目录,所有的文件都会放在workspace目录下所以需要先进入这个目录,\WebCode为项目的名称,我这里多了一层是一位我的项目结构需要在进入一层\WebCode才能进行打包,C:\Users\31633\.jenkins\workspace\webCode\WebCode\webCodeDist\* 是我打包后的dist文件

greatwall@192.168.1.114:/usr/local/tomcat/webapps/newoa 是linux的文件地址,就是将打包后的dist文件复制到linux文件夹下。

重点!!!  

这里我遇到了一个问题就是当我运行的时候每次执行pmpm i 结束后就不往下执行了,虽然不知道是什么原因导致的但是我的解决方法就是将这些命令给一个一个拆分掉:这里的执行都是同步的,当上一个结束才会进行下一步。

我现在是这样执行的记得每次都需要进入文件后执行。

这里其实就已经基本完成了,但是到最后一步构建完成后复制到linux文件夹内会卡主,这是因为windows访问linux文件夹需要密码卡主等待输入密码呢。参考文档:

1、Windows免密访问linux服务器

2、windows服务器和linux服务器的ssh免密登录失败的解决方案

其他文档:

访问linux

这里有一个坑就是windows生成的公匙一定要使用windows命令来写入到linux中!!!

就是添加公匙这一步。反正核心就是解决windows通过ssh访问linux时免密的问题

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

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

相关文章

【数据集处理工具】将COCO格式数据集的val.json与tett.json文件合并为一个json

合并COCO数据集JSON文件的Python脚本 1、目的2、功能概述3、使用方法4、注意事项5、 代码部分 1、目的 此Python脚本旨在帮助用户合并多个COCO格式的数据集JSON文件&#xff0c;特别适用于将验证集和测试集的标注数据整合到单一文件中。 该脚本假设各个数据集的类别信息&…

OpenCV中的GrabCut图像分割算法的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 GrabCut 算法是一种用于图像分割的技术&#xff0c;由 Carsten Rother、Vladimir Kolmogorov 和 Andrew Blake 在 2004 年 SIGGRAPH 会议的论文《…

Pr 2024下载安装,Adobe Premiere pro2024剪辑软件下载合集获取

Premiere Pro 2023中文版简称Pr&#xff0c;pr2023是一款视频编辑软件。 pr 2023不仅可以帮助用户对各种视频进行剪辑、旋转、分割、合并、字幕添加、背景音乐等基础的处理&#xff0c;还能帮助用户进行视频颜色校正、颜色分级、稳定镜头、调整层、更改片段的持续时间和速度、效…

软件架构之基于中间件开发

软件架构之基于中间件开发 第 15 章&#xff1a;基于中间件的开发15.1 中间件技术15.1.1 中间件的概念15.1.2 中间件的分类 15.1.3 中间件产品介绍15.2 应用服务器技术15.2.1 应用服务器的概念15.2.2 主要的应用服务器15.3.1 表示层15.3.2 应用服务层 15.4 .NET15.4.1 .NET 平台…

LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树

74. 搜索二维矩阵 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row matrix.size();int col matrix[0].size();for(int i0;i<row;i) {//先排除一下不存在的情况if(i>0&&matrix[i][0]>target…

自动驾驶车道线检测系列—3D-LaneNet: End-to-End 3D Multiple Lane Detection

文章目录 1. 摘要概述2. 背景介绍3. 方法3.1 俯视图投影3.2 网络结构3.2.1 投影变换层3.2.2 投影变换层3.2.3 道路投影预测分支 3.3 车道预测头3.4 训练和真实值关联 4. 实验4.1 合成 3D 车道数据集4.2 真实世界 3D 车道数据集4.3 评估结果4.4 评估图像仅车道检测 5. 总结和讨论…

技能 | postman接口测试工具安装及使用

哈喽小伙伴们大家好!今天来给大家分享一款轻量级,高效好用的接口测试工具-postman. Postman是一个流行的API开发工具&#xff0c;主要用于测试、开发和文档化API。以下是关于Postman的介绍及其主要使用场景&#xff1a; Postman介绍&#xff1a; 1. 功能丰富的API客户端&#…

【14】Github Copilot环境搭建

环境搭建 这里以Visual Studio Code为例&#xff0c;安装好vs code&#xff0c;打开扩展侧边菜单栏&#xff0c;搜索“Github Copilot”&#xff0c;会出现如下图的两个插件&#xff0c;点击安装第一个&#xff0c;另一个会附带一起安装&#xff0c;然后弹出提示重新启动vs co…

怎么调整硬盘分区?让电脑运行更加高效!

硬盘分区是电脑存储管理的重要组成部分&#xff0c;合理的分区设置不仅能提高数据管理的效率&#xff0c;还能在一定程度上提升系统的运行性能。然而&#xff0c;随着使用需求的变化&#xff0c;我们可能需要对已有的硬盘分区进行调整。那么&#xff0c;我们该怎么调整硬盘分区…

zookeeper+kafka消息队列群集部署

消息队列(Message Queue)&#xff0c;是分布式系统中重要的组件&#xff0c;其通用的使用场景可以简单地描述为:当不需要立即获得结果&#xff0c;但是并发量又需要进行控制的时候&#xff0c;差不多就是需要使用消息队列的时候。 一、消息队列 1.什么是消息队列 消息(Messag…

Windows命令行(CMD)中,tasklist | findstr(搜索并显示包含特定字符串的进程信息)

文章目录 示例注意事项示例&#xff1a;使用 /FI 选项过滤进程 在Windows命令行&#xff08;CMD&#xff09;中&#xff0c; tasklist 命令用于显示当前运行的进程列表&#xff0c;而 findstr 命令则用于搜索字符串。当你将 tasklist 命令的输出通过管道&#xff08; |&…

支持大量边缘盒子集中管理调度的智慧物流开源了。

智慧物流视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

解读|http和https的区别,谁更好用

在日常我们浏览网页时&#xff0c;有些网站会看到www前面是http&#xff0c;有些是https&#xff0c;这两种有什么区别呢&#xff1f;为什么单单多了“s”&#xff0c;会有人说这个网页会更安全些&#xff1f; HTTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;…

【芯片设计- RTL 数字逻辑设计入门 9.1 -- CRG模块】

请阅读【芯片设计 RTL 数字逻辑设计扫盲 】 转自&#xff1a;芯片设计基础 – CRG模块 文章目录 CRG模块CRG时钟系统CRG复位系统同步复位同步复位的优点同步复位的缺点 异步复位异步复位的优点异步复位的缺点 异步复位同步释放 CRG模块 CRG是芯片里的时钟和复位生成模块&#…

Databend 开源周报第 153 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend。 支持必须更改密码…

npm 报错Error: EEXIST: file already exists, mkdir ‘C:\Windows\System32\cmd.exe‘

npm 报错Error: EEXIST: file already exists, mkdir C:\Windows\System32\cmd.exe 不管输npm 什么命令都报这个错&#xff1a; 报错图&#xff1a; 网上说恢复操作系统&#xff0c;最后定位为应该是配置问题&#xff0c; 我是配置问题 网上查了&#xff0c;最后定位为配置问…

【Mamba】Mamba的部署

ubuntu系统安装11.6版本的cuda 可以参考这两篇博客 ubuntu22.04多版本安装cuda及快速切换&#xff08;cuda11.1和11.8&#xff09;_ubuntu调整cuda版本 【Linux】在一台机器上同时安装多个版本的CUDA&#xff08;切换CUDA版本&#xff09;_linux安装多个cuda 安装CUDA https…

程易科技:十年匠心,与您同行

序章&#xff1a;时光的见证者 十年前&#xff0c;当第一缕曙光照亮程易科技的办公室&#xff0c;一个关于梦想、创新与陪伴的故事悄然启幕。程易科技&#xff0c;一家以自研DSP数字化服务平台为核心&#xff0c;致力于为企业提供高效、低成本业务构建能力的科技企业&#xff…

django中日志模块logging的配置和使用

一、文件的配置 settings.py文件中添加LOGGING块的配置&#xff0c;配置如下 # 日志记录 LOGGING {"version": 1,"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器# 格式器"formatters": {"v…

【后端开发实习】用MongoDB和Redis实现消息队列搭建分布式邮件消息系统

用Redis实现消息队列并搭建分布式邮件消息系统 系统介绍Redis实现消息队列思路分析代码实现 MongoDB监听数据变化思路分析代码实现Mongoose测试连接监听mongodb数据变化 注意点 系统介绍 本次要实现的是一个能够实现实时监控Mongodb中数据变化的系统&#xff0c;要能够在数据发…