马小酷の BLOG
Toggle navigation
2026/04/18 工程实践

这套博客是如何自动部署的

内容全部保存在仓库里,提交到 main 分支后,由 GitHub Actions 自动构建并发布到 GitHub Pages。

这套博客的部署链路并不复杂,但我很喜欢它的确定性。

整体流程#

每次我把内容推送到 main 分支,GitHub Actions 会自动触发工作流,大致经过下面三个阶段:

  1. 拉取仓库代码
  2. 安装依赖并构建静态站点
  3. 把构建产物部署到 GitHub Pages

工作流做了什么#

部署文件放在 .github/workflows/deploy.yml,核心思路很简单:

name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main
  workflow_dispatch:

后面的 build job 会调用 Astro 官方提供的 Action,自动完成依赖安装、构建和产物上传。deploy job 再把这些产物发布到 Pages。

为什么我喜欢这种方式#

这套流程很适合内容站点:

  • 没有服务器进程需要维护
  • 内容和代码都在仓库里,有完整历史
  • 失败时定位问题也很直接,去 Actions 看日志就行

发布一篇文章时,我实际要做什么#

说到底,真正需要操作的只有这些:

pnpm new-post "新文章标题"
git add .
git commit -m "feat: publish new post"
git push origin main

剩下的交给工作流处理。

最后检查项#

每次切换域名或修改站点配置时,我会顺手确认下面几项:

  • astro.config.mjs 里的 site 是否正确
  • public/CNAME 是否与自定义域名一致
  • GitHub Pages 的 Source 是否选择 GitHub Actions

部署自动化真正节省的,不是几分钟手工操作,而是让整个发布流程更稳定、更少出错。

Comments

评论

欢迎留下你的看法,也欢迎补充不同视角。