最近我把博客的部署方式从手动部署改成了使用 GitHub Actions 自动部署,这让我体会到了自动化带来的便利。在这篇文章中,我想分享一下这个转变的过程。
为什么需要自动化部署?
在之前,每次更新博客我都需要:
- 本地修改内容
- 本地构建
- 手动上传到服务器
- 重新加载服务器配置文件
这个过程不仅繁琐,而且容易出错。特别是当你频繁更新内容的时候,这种重复性的工作会消耗大量时间。
一、GitHub Actions 是什么?
GitHub Actions 是 GitHub 提供的自动化工具,它可以:
- 自动执行构建
- 测试代码
- 部署应用等
二、如何配置自动部署 Vercel?
1. 准备工作
在开始之前,我们需要:
- 一个 Vercel 账号(可以直接用 GitHub 账号登录)
- 项目已经推送到 GitHub 仓库
- 在 Vercel 中导入该项目
- 由于我这里已经配置成功过。可能跟第1次导入项目页面还不太一样。但思路都是一致的。在概述页面找到导入项目的按钮。
- 进入项目选择页面,选择项目进行导入。此时会弹出一个小框进行选择项目的操作。
项目需要开源,不然会收取一定的费用!
- 点击保存,在页面进行导入即可
- 最后完成部署
2. 获取必要的密钥
在 Vercel 项目设置中获取以下信息:
VERCEL_TOKEN
:在 Vercel 的设置页面生成VERCEL_ORG_ID
和VERCEL_PROJECT_ID
:通过 API 获取
由于已经获取到了 token,在页面上寻找这些参数是很困难的事情,我之前就找了蛮长时间也没找到。但我找到了接口,可以通过接口的方式来获取到我想要的参数:
## 调用接口获取到参数
curl -H "Authorization: Bearer 你刚刚创建的token" https://api.vercel.com/v9/projects | grep -A 5 "你的项目名"
## 在返回的JSON数据包当中
"projects": [
{
"id": "这个就是你的 VERCEL_PROJECT_ID",
"name": "你的项目名称",
"accountId": "这个就是你的 VERCEL_ORG_ID",
...
}
]
到此处 vercel 部分已经完结。
3. 配置 Secrets
这些信息需要添加到 GitHub 仓库的 Secrets 中:
-
进入仓库的 Settings -> Secrets and variables -> Actions 对应的链接为:
https://github.com/你的用户名/项目名/settings/secrets/actions/new
-
点击 "New repository secret"
VERCEL_TOKEN
VERCEL_ORG_ID
VERCEL_PROJECT_ID
-
分别添加上述三个在vercel获得的密钥,重复操作三次
4. 配置 Workflow 文件
创建 .github/workflows/vercel.yml
文件 或者 进入仓库的 Actions -> New workflow -> set up a workflow yourself →
# 可以参考我的工作流
# 定义 GitHub Actions 的工作流程名称
name: Deploy to Vercel
# 触发条件
on:
push:
branches: [ main ] # 当代码推送到 main 分支时触发
pull_request:
branches: [ main ] # 当针对 main 分支发起 Pull Request 时触发
# 定义工作流程中的作业(jobs)
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: '9.8.0'
- name: Install Dependencies
run: pnpm install
- name: Build
run: pnpm build
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
working-directory: ./
working-directory
路径必须和你之前导入项目时配置的路径保持一致,否则会导致部署失败。
5. 验证部署
配置完成后:
- 提交代码到 main 分支
- GitHub Actions 会自动触发部署
- 在 Actions 标签页查看部署进度
- 部署完成后,可以在 Vercel 仓库查看部署详情
- 如果失败也会给你发送邮件,请关注邮件查看报错信息
最终效果
现在我只需要:
- 写文章
- 提交到 GitHub
- 自动完成部署
整个过程变得简单且可靠,让我可以专注于内容创作。
总结
自动化部署不仅提高了效率,也让整个发布流程更加可靠。如果你还在手动部署,不妨试试 GitHub Actions。
欢迎在评论区分享你的自动化部署经验!