以前项目部署的流程:本地 npm run build,然后用 scp 或者 FTP 把 dist 文件夹传到服务器上。遇到着急上线的时候一紧张还容易传错目录。后来了解了 GitHub Actions,发现配置其实不难,一次搞好之后 push 代码就自动构建部署了,省了不少麻烦事。
1. GitHub Actions 是啥
就是 GitHub 自带的 CI/CD 服务,在你的仓库里建个 .github/workflows/xxx.yml 文件,每次 push 或 PR 的时候 GitHub 会自动起一台虚拟机帮你跑这个脚本。
对个人项目和小团队来说免费额度完全够用。
2. 基本概念
几个概念先搞清楚:
- Workflow:一个自动化流程,对应一个 yml 文件
- Job:流程里的一组步骤,跑在同一台机器上
- Step:具体的一步操作(跑命令、用别人写好的 Action 等)
- Trigger:触发条件(push、PR、定时等)
3. 最简单的:构建并部署到 GitHub Pages
这个适合博客、文档站、纯前端项目。
1 | # .github/workflows/deploy.yml |
推代码到 main 分支,去仓库的 Actions 标签页就能看到它在跑了。跑完之后 dist 目录会被推到 gh-pages 分支,GitHub Pages 自动更新。
4. 部署到自己的服务器
如果是部署到自己的 VPS,一般用 SSH + rsync:
1 | name: 部署到服务器 |
这里需要在仓库的 Settings → Secrets 里配置几个变量:
SSH_PRIVATE_KEY:你服务器的 SSH 私钥SERVER_HOST:服务器 IPSERVER_USER:登录用户名(一般是 root 或者自定义的)
注意:千万别把私钥直接写在 yml 文件里。 Secrets 里的变量在日志中会被自动脱敏。
5. 多环境部署
实际项目往往有测试环境和正式环境,可以用不同的分支触发不同的部署:
1 | name: 多环境部署 |
6. 一些小技巧
缓存 node_modules 加速
actions/setup-node@v3 自带 cache 功能,第二次构建会快很多。也可以手动缓存:
1 | - name: 缓存依赖 |
构建失败发通知
可以在最后加一步,构建失败时发个钉钉或者企微通知:
1 | - name: 通知钉钉 |
只在特定文件变更时触发
如果不想每次改个 README 都触发构建:
1 | on: |
搞完这些之后,写代码 → push → 自动构建部署,整个流程很丝滑。再也不用本地打包然后手动传服务器了,连半夜紧急修 bug 都轻松不少。
评论加载中…