前言
本篇仅作为一篇新手体验云效的教程,总的来说,云效的自动部署确实好用,但是新手引导稍微次了点。
我看了一下,阿里这块的引导文章虽然很多,但是没有更傻瓜化的教程。
所以,稍微整理一下自己流程配置过程中遇到的问题,算是给大家提前趟个水,没配置过的朋友可以试试,配置过的大佬也可以在评论区指出我使用不当的地方。
正文
由于本次教程面向新人,所以过程中会有很多截图,请见谅。
前期准备
在正式开始开始之前,大家最好先确认如下情况。
- 项目的包都能正常下载,不会出现祖传node_modules的情况
- 项目的环境不会太过冷僻,符合主流的node环境,便于打包
- 项目本地打包不会出现问题,不至于打包出现各种报错
当你的项目符合以上条件的时候,那么接下来使用云效的平台的过程必然如鱼得水。
新建流水线
我们选择nodejs流水线,因为我是要推送到公司服务器上,所以这里选择了主机部署。
选中之后,我们可以简单的配置一下这条流水线的名称,比如我这里要部署到生产环境,所以我改了一下名称
构建流程配置
流水线源这里我就不放图了,这个根据云效平台的提示,大多数人都能自己配置好。
我这里直接放构建流程的配置,这里的配置其实很简单,不过云效的平台官网配置说的不太明白,比如目录上边的小细节没说明白,所以总感觉差点意思,这也是本篇文档核心要整理的地方。
因为我现在这个项目是个简单的小项目,所以我这里放弃了代码检测,直接就是构建环境并部署。
最上边的配置我没有截图,因为那些都是用的默认配置,没什么好说的,我们主要配置的是任务步骤。
首先是任务环境,我们默认配置到node20环境,我的项目版本等级比较高,阿里没有提供,所以我用的是自选的20.16.0
版本。
这里我们假设自己的项目就在一台只有node20环境(之前的配置)的电脑上,我们只有npm。
在这样的环境下,我们要将手中的项目打包。
而且,我们要注意,根据自己项目的根目录输入命令开始执行构建,我将自己的命令贴出来。
因为我这里的项目是前后端放在一起的,而我的web部分是在yyb-web
目录下,所以我要切换到对应的目录,才能开始打包。
# input your command here
cd ./yyb-web
npm install pnpm -g
pnpm install
npm run build:sprod
配置好了构建命令之后,我们在配置一下打包路径。
这个路径是云效工具用来找我们打包好的文件,仍然以我为例,从根目录往下自行填写(dist就是项目打包生成的)。
至于制品名称,不用管,那个没啥事。
主机部署配置
这个流程,我们制品直接选择上一条制品就好。
主要是主机组,我们按照官方的说法,将下边给到的命令直接粘贴扔到服务器上执行,服务器会自动帮我们生成一个脚本工具,不需要我们注意什么。
配置主机组
这里一些多节点的项目可能要同时部署好几台服务器,通过这种主机组的模式,就能连续部署数台。
不过我这里就只有一台服务器,就不做这种考虑了。
在配置好主机组之后,我们给自己的主机组改一下名字,比如我这里就改名为生产环境,便于后续查看。
填写部署脚本
接下来其实就很简单了,只要稍微懂点linux脚本的朋友,看着官方的教程应该就知道接下来要怎么做了。
不过,我这篇是面向新手,所以我就顺手解释一下这个过程。
我们配置好部署脚本之后,为了有防止有朋友不明白下边这条命令,我稍微解释一下。
简单来说,云效平台把打包好的文件,以package.tgz
的形式存放在下载目录(我这里是/home/admin/app)。
之后,通过tar
命令解压到 你需要部署的linux目录。
tar zxvf /home/admin/app/package.tgz -C 你需要部署的linux目录
这里为了防止出错,记得确认一下自己填写的下载路径在服务器上是否存在,完成以上配置后,如下图所示。
部署通知
不论是部署成功还是失败,如果我们希望能知道部署情况,我们可以再配置一个任务插件,当部署完成之后,云效可以通过邮件通知我们。
自动部署
这里我目前还没有用其他方式关联到分支提交,目前依然是手动部署的模式,不过,流程却自动化了。
有人可能会觉得这不还是需要手动点击吗?
但是,通过一系列的脚本,使开发者不再需要手动去操作部署流程,这减少了过程的不确定性,这简直是极大的提升。
稳定且简单的部署流程,只要点一下,就能跑完,且后续可以按照需求,针对分支提交进行管理,当分支提交之后,自动部署完整个流程。
这样的自动化部署流程,简单且高效,为什么不用起来呢?
结语
这个流程虽然不麻烦,但是打包及试错的时间成本有点高,每次打包报错,重新运行一下就得调好久。
按照我的这个教程配置,应该能满足大多云效平台开发者的需求,能给大家结业不少时间的。
为了配出来这个流水线,昨天自己在宿舍里边调了好几个小时,我这里已经替大家谁过错了,按照我的文档,大家就不要去自己蹚水了。
水文不易,希望大家点点赞,给点动力,如果能有收藏就更好了(笑)。