Ubuntu上Jenkins自动化部署Gitee上VUE项目

文章目录

    • 1.安装NodeJS插件
    • 2.配置全局工具配置-NodeJS环境变量
    • 3.新建自由风格的软件项目任务
    • 4.配置General
      • 配置丢弃旧的构建
      • 配置参数化构建过程
    • 5.配置源码管理
    • 6.构建触发器
    • 7.设置构建环境
    • 8.配置构建步骤
    • 9.配置构建后操作
    • 10测试构建

前文链接: Ubuntu上Jenkins自动化部署Gitee上SpringBoot项目

相关Jenkins和服务器环境都已配置完成。

1.安装NodeJS插件

Dashboard -> 系统管理 -> 插件管理 -> 可选插件,搜索nodejs,安装即可。

安装完成后重启Jenkins(空闲时)

2.配置全局工具配置-NodeJS环境变量

Dashboard -> 系统管理 -> 全局工具配置(Global tool configuration),添加NodeJS。

如果服务器已经安装了NodeJS,可以配置路径,否则可以选自动安装

也可以添加多个node版本,后面选择其中一个使用。

保存就OK!这样我们在新建任务,配置项目构建环境时就可以选择这里配置的nodejs。

# 注意 服务器和Jenkins上是隔离的
# 这里服务器上没安node,我们选择自动安装。
# 服务器上执行时报错的
# node -v
bash: node: command not found
#这里执行是对的
# /root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS21/bin/node -v
v21.6.2

3.新建自由风格的软件项目任务

Dashboard -> 新建任务

  • 输入任务名称
  • 选择构建一个自由风格的软件项目
  • 点击确认按钮

4.配置General

描述:就是注释,给我们这个job一个更便于其他查看的详解

Throttle builds:节流构建,通过设置时间段内允许并发的次数来实现构建的控制

  • Number of builds:构建的次数
  • Time period:设置指定的时间段,单位可以是年、月、日、周、时、分、秒

在必要时进行并发构建:满足策略要求时就会进行并发构建

安静期:设置一个时间来间隔每次构建的间隔

重试次数:这个和系统设置的一样,拉取源码重试的次数

该项目的上游项目正在构建时阻止该项目构建与该项目的下游项目正在构建时阻止该项目构建:用于上下游项目有关联的构建策略

使用自定义的工作空间:使该项目独立于系统的工作空间

配置丢弃旧的构建

设置构建历史的保存策略

  • log Rotation:日志循环,只有一个默认值选项 Log Rotation,无须修改;
  • 保持构建的天数:根据你所填写的天数来保存构建记录;
  • 保持构建的最大个数:有几条构建记录保存;
  • 发布包保留天数
  • 发布包最大保留个构建

配置参数化构建过程

参数化构建,可以单击添加参数,在每次构建之前需要用户给参数赋值,根据不用的参数值执行不同的处理流程。

以一个示例场景为例,考虑到每次构建可能不需要运行npm install,我们可以通过参数化配置来判断是否在构建时执行这个依赖安装命令。

添加一个布尔值参数INSTALL_DEPENDENCIES.

5.配置源码管理

  • 仓库 URL:https://gitee.com/lakernote/easy-admin.git。
  • 凭证:用于访问Git仓库的用户名密码、ssh 密钥、token 等凭证。
  • Branches to build:指定分支。

6.构建触发器

构建触发器用来设置触发项目构建的时间或者事件。

这里也可以什么都不选,然后手动在Jenkins点击按钮触发。

触发远程构建

勾选此复选框之后,Jenkins 会提供一个特定的 URL 用来触发项目的自动构建。为了安全起见,可以看到在 URL 之后还会要求有一个用于授权的 Token 字段。这样就可以使用 wget 或 curl 这样的工具触发构建。

其它项目构建完成后构建

用来设置在某个项目构建完成后才能触发本项目的构建。而且可以对其它项目的具体构建结果进行设定,比如,稳定的(成功),不稳定的,失败的。比如我们需要在 war 包发布成功后,再进行测试脚本的执行,这种场景下就可以配置此项。

定时构建

img

这是一种类似于 crontab 命令的功能,可以指定在某个或某些具体时间自动进行项目的执行。包含 5 个字段,这些字段以空格或者 Tab 键分割,用来指定多久去执行一次构建。格式为:

  1. MINUTES:一小时内的分钟,取值范围(0-59)
  2. HOURS:一天内的小时,取值范围(0-23)
  3. DAYMONTH :一个月中的某一天,取值范围(1-31)
  4. MONTH :月份,取值范围(1-12)
  5. DAYWEEK:一周中的星期几,取值范围(0-7)。0 和 7 都表示星期日
# every fifteen minutes (perhaps at :07, :22, :37, :52).
H/15 * * * *# every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24).
H(0-29)/10 * * * *# once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday.
45 9-16/2 * * 1-5# once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM).
H H(9-16)/2 * * 1-5# once a day on the 1st and 15th of every month except December.
H H 1,15 1-11 *

轮询 SCM

img

就是定期到指定的代码仓库查询是否有变化,如果有变化就执行。语法同 cron 是一样的。

与周期性构建的区别就是,让 Jenkins 在指定的时间去检查代码仓库是否有变化,有变化了才运行项目,而不是直接到点了就运行项目。

注意:最下面一行有一个复选框,忽略 post-commit 钩子,就是告诉 Jenkins 要忽略来自钩子的信号,目的就是为了防止重复触发操作。

7.设置构建环境

  • Delete workspace before build starts 会在构建之前清空工作空间。
  • Use secret text(s) or file(s) 使用加密文件或者文本。

8.配置构建步骤

选择执行shell

注意脚本中的一些相对目录问题。

# 在脚本中的执行结果如下
# 命令:echo $PATH
11:29:22 echo $PATH
11:29:22 /usr/lib/jvm/java-11-openjdk-amd64/bin:/root/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS21/bin:/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
# 命令: pwd
11:29:23 + pwd
11:29:23 /root/.jenkins/workspace/laker-vue

Shell内容

# 进入Jenkins工作空间下vue项目目录
cd ./laker-admin# 根据 INSTALL_DEPENDENCIES 参数的值判断是否需要安装依赖包
if [ "$INSTALL_DEPENDENCIES" = true ]; thenecho "下载依赖包"npm config set registry https://registry.npmmirror.com  # 设置npm镜像源npm config list  # 打印npm配置列表npm install  # 安装依赖包
fiecho "删除dist目录"
rm -rf ./dist/*  # 删除dist目录下的所有文件npm run build:prod  # 执行生产环境构建命令echo "清空目标目录"
rm -rf /laker/admin-client/*  # 删除目标目录下的所有文件# 确保目标目录存在
mkdir -p /laker/admin-client/dist# 将构建生成的文件复制到目标目录
cp -rf ./dist/* /laker/admin-client/dist

9.配置构建后操作

一些常见的构建后操作包括:

  • 邮件通知: 发送构建结果通知给指定的邮件地址。
  • 部署到服务器: 将构建产物部署到指定的服务器。
  • 触发其他任务: 在当前任务构建完成后触发其他Jenkins任务。
  • 生成报告: 生成测试报告、代码覆盖率报告等。

点击保存按钮。

10测试构建

1.点击使用参数构建

2.在Console Output 菜单可以查看构建日志。

12:36:59   Images and other types of assets omitted.
12:36:59 
12:36:59  DONE  Build complete. The dist directory is ready to be deployed.
12:36:59  INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
12:36:59       
12:37:00 + echo 清空目标目录
12:37:00 清空目标目录
12:37:00 + rm -rf /laker/admin-client/*
12:37:00 + mkdir -p /laker/admin-client/dist
12:37:00 + cp -rf ./dist/favicon.ico ./dist/index.html ./dist/static ./dist/tinymce4.7.5 /laker/admin-client/dist
12:37:00 Finished: SUCCESS

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

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

相关文章

java常用应用程序编程接口(API)——Instant,DateTimeFormatter,Period,Duration概述

前言: 整理下学习心得。打好基础,daydayup! Instant Instant是时间线上的某个时刻/时间戳,通过获取Instant的对象可以拿到此刻的时间,该时间由两部分组成:1,从1970年1月1日00:00:00开始走到此刻…

前端开发 VSCode 插件推荐

1、Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code VS Code 的中文(简体)语言包,此中文(简体)语言包为 VS Code 提供本地化界面。 下载地址:Chinese (Simplified) (简体中文) La…

D*算法超详解 (D星算法 / Dynamic A*算法/ Dstar算法)(死循环解决--跟其他资料不一样奥)

所需先验知识(没有先验知识可能会有大碍,了解的话会对D*的理解有帮助):A*算法/ Dijkstra算法 何为D*算法 Dijkstra算法是无启发的寻找图中两节点的最短连接路径的算法,A*算法则是在Dijkstra算法的基础上加入了启发函数…

[JavaWeb玩耍日记]HTML+CSS+JS快速使用

目录 一.标签 二.指定css 三.css选择器 四.超链接 五.视频与排版 六.布局测试 七.布局居中 八.表格 九.表单 十.表单项 十一.JS引入与输出 十二.JS变量,循环,函数 十三.Array与字符串方法 十四.自定义对象与JSON 十五.BOM对象 十六.获取…

Network LSA 结构简述

Network LSA主要用于描述一个区域内的网络拓扑结构,包括网络中的路由器和连接到这些路由器的网络。它记录了每个路由器的邻居关系、连接状态以及连接的度量值(如带宽、延迟等),以便计算最短路径和构建路由表。display ospf lsdb n…

网关kong记录接口处理请求和响应插件 tcp-log-with-body的安装

tcp-log-with-body 介绍 Kong的tcp-log-with-body插件是一个高效的工具,它能够转发Kong处理的请求和响应。这个插件非常适用于需要详细记录API请求和响应信息的情景,尤其是在调试和排查问题时。 软件环境说明 kong version 2.1.4 - 2.8.3 [可用亲测]C…

二、数据结构——单链表,双链表,栈,队列,单调栈,单调队列,KMP,Trie,并查集,堆,哈希表等内容。

对于链表来说,由于new操作时间太长,因此,算法题中一般使用静态链表。 1.单链表 采用数组实现单链表,可以直接开两个数据,一个数组存放数值,另外一个数据存放下一个元素(指针)。 示…

一个教材上的CMS网站源码在Linux服务器上登录时验证码正常,但在windows下不能正常显示

一个教材上的CMS网站源码在Linux服务器上登录时验证码正常,但在windows下不能正常显示。 在linux服务器上能正常显示。显示界面如下所示:

蜻蜓FM语音下载(mediadown)

一、介绍 蜻蜓FM语音下载(mediadown),能够帮助你下载蜻蜓FM音频节目。如果你是蜻蜓FM会员,它还能帮你下载会员节目。 二、下载地址 本站下载:蜻蜓FM语音下载(mediadown) 百度网盘下载&#…

【Redis 主从复制】

文章目录 1 :peach:环境配置:peach:1.1 :apple:三种配置方式:apple:1.2 :apple:验证:apple:1.3 :apple:断开复制和切主:apple:1.4 :apple:安全性:apple:1.5 :apple:只读:apple:1.6 :apple:传输延迟:apple: 2 :peach:拓扑结构:peach:2.1 :apple:⼀主⼀从结构:apple:2.2 :apple:⼀…

【MetaGPT】配置教程

MetaGPT配置教程(使用智谱AI的GLM-4) 文章目录 MetaGPT配置教程(使用智谱AI的GLM-4)零、为什么要学MetaGPT一、配置环境二、克隆代码仓库三、设置智谱AI配置四、 示例demo(狼羊对决)五、参考链接 零、为什么…

大数据技术(一)

大数据技术概述 大数据技术层面及其功能 数据采集与预处理 利用ETL(extract-transform-load)工具将分布的、异构数据源中的数据,如关系数据、平面数据文件等,抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中&…

前端canvas项目实战——简历制作网站(五):右侧属性栏(字体、字号、行间距)

目录 前言一、效果展示二、实现步骤1. 优化代码,提取常量2. 实现3个编辑模块3. 实现updateFontProperty方法4. 一个常见的用法:仅更新当前选中文字的样式 三、Show u the code后记 前言 上一篇博文中,我们扩充了线条对象(fabric.…

Dockerfile构建过程详解

Dockerfile介绍 docker是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 1、编写一个dockerfile文件 2、docker build构建成为一个镜像 3、docker run 运行镜像 …

PDF转Excel的未来:人工智能技术如何提升转换效率和准确性

随着信息技术的快速发展,PDF和Excel作为两种重要的文件格式,在日常生活和工作中扮演着至关重要的角色。PDF以其独特的跨平台阅读特性,成为了文件分享和传输的首选格式;而Excel则以其强大的数据处理能力,成为了数据分析…

【二分查找】【C++算法】378. 有序矩阵中第 K 小的元素

作者推荐 视频算法专题 本文涉及的基础知识点 二分查找算法合集 LeetCode378. 有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素&…

机器人持续学习基准LIBERO系列10——文件结构

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

力扣日记3.3-【回溯算法篇】332. 重新安排行程

力扣日记:【回溯算法篇】332. 重新安排行程 日期:2023.3.3 参考:代码随想录、力扣 ps:因为是困难题,望而却步了一星期。。。T^T 332. 重新安排行程 题目描述 难度:困难 给你一份航线列表 tickets &#xf…

关于脉冲负载应用中电阻器,您需要了解的 11 件事?

不幸的是,电阻器在脉冲负载下可能会失效。当脉冲功率耗散到器件的电阻元件时,它会产生热量并增加电阻器的温度。过热会损坏电阻元件,导致电阻变化甚至设备开路。为了避免在设计中出现这种情况,以下是您在选择元件时应了解的有关电…

excel统计分析——拉丁方设计

参考资料:生物统计学 拉丁方设计也是随机区组设计,是对随机区组设计的一种改进。它在行的方向和列的方向都可以看成区组,因此能实现双向误差的控制。在一般的试验设计中,拉丁方常被看作双区组设计,用于提高发现处理效应…