自动化部署

1,389 阅读3分钟

自动化部署概述

什么是部署

首先我们来聊一下什么是部署,从开发者使用脚手架创建初始项目,在本地搭建开发服务器进行项目开发,编码完成后,经过构建生成目标环境可用的代码,到此阶段的所有工作都属于开发环节。部署就是在开发结束后,使得软件在某一环境中运行起来,这个过程中会将源代码生成可运行的软件包,然后将软件包放到要部署的环境中,通过一些配置使得这个软件包在目标环境上也能够正常工作。

什么是自动化部署

一句简单的话概括:部署的过程中所有的操作全部自动化,无需人工手工干预。

自动化部署的好处

相比传统手动部署,比如你你项目新增加一个功能,你就得把 本地更新 --- 构建 --- 发布 这一套流程走一遍,看似没有什么难的,但是一旦项目多,部署频繁,这种就效率低下,还会存在人为的误操作性,所以自动化部署他就来了~

自动化部署工具

那现在有很多工具都能帮助我们实现 CI / CD 服务,比如 jenkinsGitlab CI, GitHub Actions 等等,本文将以 GitHub Actions 为例,为大家演示一遍自动部署的流程:

自动化部署流程

1. 环境准备

  • Linux 服务器
  • 代码托管到 GitHub 远程仓库

注意 这里官方对服务器有要求,目前支持的有

本文以 Linux 的 Ubuntu 20.04为例

2. GitHub 设置

登录 GitHub ----> 用户设置 settings(注意是用户的而不是项目内) ---> Developer settings ---> Personal access tokens ---> Generate new token ---> Generate token

这里需要特别注意,生成的值只会展示一次,记得保存好,如果没注意保存,那就重新生成一个

3. 项目设置

进入项目仓库 ---> 点击 settings ---> secrets ---> New secrets

这里需要注意,在第二步生成token,我们说了名称随意,只需把那个值拿过来填到这里,在第三步中建议就叫 token,因为后续配置中要用到,如果这里不是 token,就得在后续修改配置文件

4. 本地开发项目内

在项目根目录下创建 .github/workflows/main.yml 文件,这个就是具体的工作流文件,这里主要文件夹名称以及文件名称都得是这个,main.yml 可参考 main.yml,pm2.json 可参考 pm2.json ,


5. git tag

到此为止,基本配置就结束了,最后我们就可进行发布了,先本地提交所有代码同步到远程仓库,然后在本地git tag 打个标签(git tag v0.0.1), 再通过 git push origin v0.1.1 触发部署,因为我们在main.yml 文件中设置了,当以 v 开头定位 push 就触发部署

6. 验证效果

回到 GitHub,点击 Actions

进入具体构建查看 build-and-deploy

最后所有任务都成功,那么就说明这个项目自动部署就已经成功了,之后代码有后续更新以后需要部署上线,也就不用自己去重复那些繁琐的工作了,只需重复一下第五步,就可以触发自动部署了