当前位置: 首页 > news >正文

云效流水线自动化部署前端纯静态web网站

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

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

背景

配置流水线以前,每次更新导航网站都要登进去宝塔后台,删掉旧的目录和文件,再上传最新的文件,太麻烦啦

网上的博客基本都是分享vue项目,这一篇是分享的是部署纯静态网站

需要部署的文件是整个代码仓库的文件,文件如下:

云效仓库
因为是公司内部用的导航网站,所以并没有做css文件压缩、js文件压缩处理

新建流水线

进入到云效后台,选择新建流水线
在这里插入图片描述
根据上图选好模板后,可以点击创建,下一步配置流水线

配置流水线

第一步,添加流水线源。主要配置代码仓库、触发条件

在这里插入图片描述
其它没截图的都是按照默认去配置

第二步,修改基本信息

在这里插入图片描述
这个很简单

第三步,删除测试步骤。项目不需要做测试和代码检查,就是普通的web项目

在这里插入图片描述

第四步,Web 构建

这个很重要

按理说静态网站是不需要跑什么npm run build命令去构建的。云效直接压缩,部署的时候再解压。但是构建产物的时候执行得是克隆命令,克隆仓库会带上一个.git目录,这个目录是不需要上传到宝塔的

Web 构建整体配置如下

在这里插入图片描述
执行命令配置效果

在这里插入图片描述
执行命令的命令脚本

echo cissy remove start
#前面下载流水线源应该是纯克隆,导致宝塔多了一个.git目录
rm -r .git
echo cissy remove end

构建物上传配置效果

在这里插入图片描述

为什么这样配置?

  • 删除“Node.js 构建”这个默认步骤是因为项目不需要npm run build
  • 新增"执行命令"这个步骤是为了要用脚本去删除那个没有用的.git目录

Web 构建已配置完成,其它没截图的都是按照默认去配置

第五步,主机部署

这个也很重要,也是最后一步

主机部署整体配置如下

在这里插入图片描述
制品直接选择默认制品

配置主机组暂时没有教程

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

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

/www/wwwroot/packages/nav.tgz

配置部署脚本,这个步骤非常非常重要

部署脚本(纯享版)

rm -rf /www/wwwroot/abc.xxxx.com.cn/*
tar zxvf /www/wwwroot/packages/nav.tgz -C /www/wwwroot/abc.xxxx.com.cn

部署脚本(注释版)

# 1.配置主机组(问后端)
# 2.设置下载路径,宝塔新增了目录专门放压缩包,比如/www/wwwroot/packages/nav.tgz
# 3.设置执行用户,应该都是root吧
# 4.删除/www/wwwroot/abc.xxxx.com.cn/下的所有文件
rm -rf /www/wwwroot/abc.xxxx.com.cn/*
# 5.把构建物解压到/www/wwwroot/abc.xxxx.com.cn/目录下
tar zxvf /www/wwwroot/packages/nav.tgz -C /www/wwwroot/abc.xxxx.com.cn
# 6.浏览器输入http://abc.xxxx.com.cn就可以访问最新效果了

部署脚本配置效果

在这里插入图片描述

主机部署这里也可以配置一个企业微信机器人通知,不过这个项目暂时没这个需求

目前基本信息、流程配置已经配置完了,还剩触发设置、变量和缓存,这个非必要,可以不用管。

至此流水线已全部配置完毕,下一步就是测试


运行流水线

需要测试一下脚本执行的有没有问题。

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

在这里插入图片描述
运行备注随便写,比如:测试自动化部署

到了云效流水线的运行界面,点进去查看日志

在这里插入图片描述
点击Web构建日志,看看“执行命令”这个构建步骤有没有删除.git目录

在这里插入图片描述
脚本执行成功了,去宝塔去看看有没有部署成功

在这里插入图片描述
宝塔也部署成功了,那就没有问题了!

尝试提交代码去触发流水线。如果触发成功,你可以在流水线的运行历史看到

在这里插入图片描述

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

总结

云效流水线做得真的很好。下一篇:云效流水线使用Node构建部署前端web项目


http://www.mrgr.cn/news/82068.html

相关文章:

  • 网站服务器中的文件被自动删除的原因
  • 一文通透OpenVLA及其源码剖析——基于Prismatic VLM(SigLIP、DinoV2、Llama 2)及离散化动作预测
  • 【Uniapp-Vue3】@import导入css样式及scss变量用法与static目录
  • 数据结构二叉树-C语言
  • Unity 人体切片三维可视化,可任意裁切切割。查看不同断层的图像。
  • C++编程指南13 - 尽量减少可写数据的共享
  • 四大自平衡树对比:AVL树、红黑树、B树与B+树
  • 2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》
  • 从0到机器视觉工程师(一):机器视觉工业相机总结
  • 【Leetcode 每日一题 - 扩展】面试题 04.10. 检查子树
  • 初始nginx
  • 因数据库表被锁死导致服务假死的排查和解决过程
  • 混合合并两个pdf文件
  • vue实现下拉多选、可搜索、全选功能
  • Vue多页面路由与模版解析
  • 自动驾驶新纪元:城区NOA功能如何成为智能驾驶技术的分水岭
  • SpringAI从入门到熟练
  • FreeRTOS Lwip Socket APi TCP Server 1对多
  • 大模型WebUI:Gradio全解系列8——Additional Features:补充特性(上)
  • 小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面
  • Isaac Sim Docker 中使用 Python 脚本
  • 一份关于 Ubuntu 系统下代理配置的故障排查笔记
  • Linux高并发服务器开发 第七天(静态库 动态库)
  • LVS 负载均衡原理 | 配置示例
  • Linux高级--3.2.4.2 常见的几种timer的设计方案
  • Java基本操作笔记