前言
本文将详细介绍如何实现一个 Next.js 项目的持续集成和自动化部署,鉴于自建 gitlab 和 gitlab-runner 有一定的服务器硬件要求,并且需要一定的时间成本,不是本文的重点,所以我们使用现成的 Github 作为本次教程代码管理工具,Travis CI 来自动化构建, 使用 PM2 作服务器的进程管理工具来完成本次教程。下面我列出本次教程所需的物理材料:
- Linux 远程服务器(笔者使用的版本:Ubuntu 18.04)
- 本地个人开发主机
后文笔者将分别用 remote 和 local 简称上述材料
部署策略简述
我先把整个部署的策略按照步骤大致列一下,好让跟学的同学心里有个谱,判定一下符不符合自己的学习诉求
- 使用 Github 托管源码
- Travis CI 构建生产包,并将构建包提交到 Github 的部署分支(命名如:DEPLOY-PROD)上
- Travis CI 完成构建包的推送后,调用 PM2 的 deploy 命令, 触发 remote 服务器拉取最新的构建包,然后自动重启服务