云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署

    • 背景
    • 新建流水线
    • 配置流水线
    • 运行流水线
    • 总结

背景


先来看看没有配置云效流水线之前的部署流程:

在这里插入图片描述
而且宝塔会经常要求重新登录,麻烦的很

网上博客分享了不少的配置流程,这一篇博客的亮点就是不仅给出了npm命令构建,还给出了yarn命令构建,自测都成功部署了。

使用yarn构建过程中,遇到很多报错。

  • yarn install ETIMEDOUT
  • certificate has expired
  • getaddrinfo ENOTFOUND registry.nlark.com

具体怎么解决请看配置流水线的 Node.js 构建 或者前往 阿里云开发者社区 查看我的回答

新建流水线

进入到云效后台,按照下图步骤新建流水线,选择“部署到阿里云主机”

在这里插入图片描述

配置流水线

前面已经选好流水线模板了,接下来就是配置

第一步,修改基本信息

在这里插入图片描述
本项目要部署的是测试环境,所以选了日常环境

第二步,添加流水线源。这是最基础的配置,涉及了:关联代码仓库、配置触发条件

在这里插入图片描述

把代码检查跟单元测试删除了,暂不需要。

此步骤的意思是,当你把最新的代码push到xx分支上就会触发流水线

第三步,Node.js 构建

重要步骤

先看整体的构建步骤

在这里插入图片描述
上图有个构建步骤叫下载流水线源,其实就是跑了一下git clone,实际构建还需要打包dist产物,也就是Node.js 构建 、构建物上传这两个构建步骤

Node.js 构建
在这里插入图片描述
node的版本根据实际需要去选,vscode终端输入node --version查看项目依赖的node版本,但其实云效给出的版本也够用了。

构建命令(npm版本)

cnpm install
npm run build:test

为了避免项目中途增加依赖导致打包报错,建议先install再打包,云效推荐使用cnpm安装依赖,内部配置了最新的国内镜像源(淘宝镜像源)

构建命令(yarn版本-配置代理)

#yarn版本与本地版本保持一致(非必要步骤)
#npm install yarn@1.22.19 -g
#yarn --version
yarn config set registry https://registry.npmmirror.com/
yarn config set strict-ssl false
npm config set registry https://registry.npmmirror.com/
npm config set strict-ssl false
yarn config list
yarn install
yarn run build:test

registry 地址是最新的国内镜像源,保持与本地配置一样(vscode的配置)

构建命令(yarn版本-不配置代理)

#yarn版本与本地版本保持一致(非必要步骤)
#npm install yarn@1.22.19 -g
#yarn --version
yarn config set registry https://registry.yarnpkg.com
yarn config set strict-ssl false
npm config set registry https://registry.npmjs.org
npm config set strict-ssl false
yarn config list
yarn install
yarn run build:test

如果不配置代理那就要科学上网了,构建集群需要重新选择为“云效中国香港服务集群”,并且 registry 要设置回官方源
在这里插入图片描述
记录Node.js 构建使用yarn命令过程遇到一系列报错问题:

问题一:error An unexpected error occurred: “https://registry.npmjs.org/d3-hexjson/-/d3-hexjson-1.1.0.tgz: ETIMEDOUT”

解决方案:配置国内镜像源或者使用云效中国香港服务集群

问题二:项目某个包报错certificate has expired

解决方案:构建脚本多加多一句yarn config set strict-ssl false、npm config set strict-ssl false

问题三:项目某个包报错getaddrinfo ENOTFOUND registry.nlark.com

解决方案:删除项目的yarn.lock、node_modules目录,重新执行yarn install,再提交变更的yarn.lock文件(参考博客:本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com)

构建物上传

在这里插入图片描述
构建物上传很简单,只要设置一下为打包路径

#具体要看 webpack 配置的 `output.path` ,不一定都叫dist
dist/

这代表只会上传dist目录下所有文件。到了主机部署,云效会把这个构建物压缩,传输到你自己的阿里云服务器

第四步,主机部署

重要步骤

先看主机部署整体配置

在这里插入图片描述

新建主机组暂时没有教程,可以参考以下教程:

  • 阿里云效自动化部署前端vue2
  • 云效实现前端自动化打包部署

下载路径,需要去宝塔新建一个目录,专门放流水线下载的压缩包。

在这里插入图片描述
下载路径

/www/wwwroot/packages/web.tgz

执行用户

root

部署脚本

# 删除dist下的所有文件
rm -rf /www/wwwroot/${APP_PATH}/dist/*
# 把构建物解压到dist目录下
tar zxvf /www/wwwroot/packages/web.tgz -C /www/wwwroot/${APP_PATH}/dist
# 删除压缩包(非必要步骤,反正每次部署都会覆盖前一次的压缩包)
#rm -rf /www/wwwroot/packages/web.tgz

这里根据项目实际情况而定,本项目还多一层dist目录(宝塔站点网站目录配置:设置dist目录为运行目录),具体目录结构前面的背景也有截图出来。

脚本变量 APP_PATH 配置
在这里插入图片描述
字符变量名称

APP_PATH|APP_NAME|WEB_PATH|WEB_NAME|PROJECT_PATH|PROJECT_NAME

记录主机部署配置过程中的报错问题

构建日志报错信息
/root/logger.sh: line 16: date: command not found
[] [INFO] 执行步骤
/root/exec.sh: line 4: tee: command not found
/root/logger.sh: line 4: date: command not found
[] [ERROR] BUILD ERROR
/root/logger.sh: line 4: date: command not found
[] [ERROR] 282504095
/root/logger.sh: line 4: date: command not found
[] [ERROR] 步骤运行失败,返回码: 141
/root/entry.sh: line 180: which: command not found

解决方案:字符变量起名带一个前缀


运行流水线

流水线已全部配置完毕,还需要测试一下脚本执行的有没有问题。

因为脚本里面有rm删除目录操作,注意看前面的文件路径参数有没有写错,记得做好备份

在这里插入图片描述

运行备注随便写,比如:测试自动化部署

点击运行后,会跳转到云效流水线的运行界面

在这里插入图片描述
流水线运行成功后,登进宝塔看看文件的最新修改时间,检查有没有成功部署

确定部署成功之后就可以提交代码去触发流水线

如果触发成功,你可以在流水线的运行历史看到

在这里插入图片描述

至此自动化部署的流水线全部配置完毕,希望能帮助大家

总结

云效流水线可视化做得真好,我们后端也是用的云效流水线。上一篇:云效流水线自动化部署前端纯静态网站

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pycharm如何拉取一个git项目,然后,修改后再上传到自建的项目中?

以chattts为例 https://github.com/2noise/ChatTTS.git 1.建一个虚拟环境,用于项目使用 2.pycharm新建工程 3.忽略 提示 勾选,新建远程仓库 设置账号和密码 设置git路径,一般是正确的,点测试即可 &…

(五)开机自启动以及scp工具文件传输小问题

文章目录 程序开机自启动先制作一个可执行程序第一种 通过命令行实现程序开机自启动第二种 通过 Linux 系统镜像实现程序开机自启动 scp工具文件传输小问题 程序开机自启动 原因:做成产品后,用户直接开机使用,总不能在开机执行程序后才可以使…

供需平台信息发布付费查看小程序系统开发方案

供需平台信息发布付费查看小程序系统主要是为了满足个人及企业用户的供需信息发布与匹配需求。 一、目标用户群体 个人用户:寻找兼职工作、二手物品交换、本地服务(如家政、维修)等。 小微企业:推广产品和服务,寻找合…

中建海龙:科技助力福城南产业片区绿色建筑发展

在快速发展的城市化进程中,绿色建筑以其环保、节能、可持续的特点日益受到重视。作为建筑工业化领域的领军企业,中建海龙科技有限公司(简称“中建海龙”)凭借其卓越的科技实力和创新举措,在推动绿色建筑发展方面做出了…

OJ随机链表的复制题目分析

题目内容: 138. 随机链表的复制 - 力扣(LeetCode) 分析: 这道题目,第一眼感觉非常乱,这是正常的,但是我们经过仔细分析示例明白后,其实也并不是那么难。现在让我们一起来分析分析…

动态规划回文串问题系列一>回文子串

题目: 解析: 注意:字串和子数组差不多 状态表示: 状态转移方程: 初始化: 填表顺序: 返回值: 返回dp表里true的个数

万里数据库GreatSQL监控解析

GreatSQL是MySQL的一个分支,专注于提升MGR(MySQL Group Replication)的可靠性及性能。乐维监控平台可以有效地监控GreatSQL,帮助用户及时发现并解决潜在的性能问题。 通过在GreatSQL服务器上安装监控代理,收集数据库性…

君正T41交叉编译ffmpeg、opencv并做h264软解,利用君正SDK做h264硬件编码

目录 1 交叉编译ffmpeg----错误解决过程,不要看 1.1 下载源码 1.2 配置 1.3 编译 安装 1.3.1 报错:libavfilter/libavfilter.so: undefined reference to fminf 1.3.2 报错:error: unknown type name HEVCContext; did you mean HEVCPr…

Sublime Text4 4189 安装激活【 2025年1月3日 亲测可用】

-----------------测试时间2025年1月3日------------------- 下载地址 官方网址:https://www.sublimetext.com 更新日志:https://www.sublimetext.com/download V4189 64位:https://www.sublimetext.com/download_thanks?targetwin-x64 ....…

Zabbix5.0版本(监控Nginx+PHP服务状态信息)

目录 1.监控Nginx服务状态信息 (1)通过Nginx监控模块,监控Nginx的7种状态 (2)开启Nginx状态模块 (3)配置监控项 (4)创建模板 (5)用默认键值…

Java高频面试之SE-08

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 成员变量和局部变量的区别有哪些? 在 Java 中,成员变量和局部变量是两种不同类型的变量,它们在作用域…

Linux(Centos 7.6)命令行快捷键

Linux(Centos 7.6)操作系统一般都是使用命令行进行管理,如何能高效的进行命令编辑与执行,需要我们记住一些常见的命令,也需要连接一些常见快捷键的使用,常见快捷键如下: 快捷键快捷键说明tab命令行补齐ctrlr快速查找之…

Geoserver修行记-后端调用WMS/WMTS服务无找不到图层Could not find layer

项目场景 调用geoserver地图服务WMS,找不到图层 我在进行地图服务调用的时候,总是提示我找不多图层 Could not find layer,重点是这个图层我明明是定义了,发布了,且还能够正常查看图层的wms的样式,但是在调用后端调用…

ip属地的信息准确吗?ip归属地不准确怎么办

在数字化时代,IP属地信息成为了我们日常生活中不可或缺的一部分。在各大社交媒体平台上,IP属地信息都扮演着重要的角色。然而,随着技术的不断进步和网络的复杂性增加,IP属地信息的准确性问题也日益凸显。那么,IP属地信…

nginx高可用集群搭建

本文介绍nginx高可用集群的搭建。利用keepalived实时检查nginx进程是否存活、keepalived的虚拟ip技术,达到故障转移的目的。终端用户通过访问虚拟ip,感知不到实际发生的故障。架构图如下: 0、环境 Ubuntu:22.04.2 ltsnginx: 1.…

UE5材质节点Distance

Distance可以计算两个物体间的距离,可以用来做过渡效果 当相机和物体距离3000的时候,就会渐渐从蓝过渡到红色,除以500是为了平滑过渡

CS·GO搬砖流程详细版

说简单点,就是Steam买了然后BUFF上卖,或许大家都知道这点,但就是一些操作和细节问题没那么明白。我相信,你看完这篇文章以后,至少会有新的认知。 好吧,废话少说,直接上实操! 首先准…

【Cocos TypeScript 零基础 3.1】

目录 场景跳转 场景跳转 把新建好的TS文件与场景绑定 选中 场景 或 camera 拖进右边的 属性检查器 双击T文件,进入编辑 至于用什么IDE看个位朋友高兴 我这里有 VScode ,先用这个,老师也没有推荐 (老师也用的是这个) VScode UI 也有中文包,请自行上网搜索 打开创建的TS文件后…

分析服务器 systemctl 启动gozero项目报错的解决方案

### 分析 systemctl start beisen.service 报错 在 Linux 系统中,systemctl 是管理系统和服务的主要工具。当我们尝试重启某个服务时,如果服务启动失败,systemctl 会输出错误信息,帮助我们诊断和解决问题。 本文将通过一个实际的…

pd虚拟机 Parallels Desktop 20 for Mac 安装教程【支持M芯片】

文章目录 效果图一、下载软件二、安装运行⚠️注意事项:1、前往 系统设置–> 隐私与安全性 –> 完整磁盘访问权限,中允许终端:2、安装运行【ParallelsDesktop-20.1.2-55742.dmg】,运行【安装.app】3、将【Patch】文件夹拖到…