当前位置: 首页 > news >正文

<span class=“js_title_inner“>HagiCode 实践:如何利用 GitHub Actions 实现 Docusaurus 自动部署</span>

为 HagiCode 添加 GitHub Pages 自动部署支持

本项目早期代号为 PCode,现已正式更名为 HagiCode。本文记录了如何为项目引入自动化静态站点部署能力,让内容发布像喝水一样简单。

背景/引言

在 HagiCode 的开发过程中,我们遇到了一个很现实的问题:随着文档和提案越来越多,如何高效地管理和展示这些内容成了当务之急。我们决定引入 GitHub Pages 来托管我们的静态站点,但是手动构建和部署实在是太麻烦了——每次改动都要本地构建、打包,然后手动推送到gh-pages分支。这不仅效率低下,还容易出错。

为了解决这个问题(主要是为了偷懒),我们需要一套自动化的部署流程。本文将详细记录如何为 HagiCode 项目添加 GitHub Actions 自动部署支持,让我们只需专注于内容创作,剩下的交给自动化流程。

关于 HagiCode

嘿,介绍一下我们正在做的东西

我们正在开发HagiCode——一款 AI 驱动的代码智能助手,让开发体验变得更智能、更便捷、更有趣。

智能——AI 全程辅助,从想法到代码,让编码效率提升数倍。便捷——多线程并发操作,充分利用资源,开发流程顺畅无阻。有趣——游戏化机制和成就系统,让编码不再枯燥,充满成就感。

项目正在快速迭代中,如果你对技术写作、知识管理或者 AI 辅助开发感兴趣,欢迎来 GitHub 看看~

目标分析

在动手之前,我们得先明确这次任务到底要干啥。毕竟磨刀不误砍柴工嘛。

核心需求

  1. 自动化构建:当代码推送到main分支时,自动触发构建流程。

  2. 自动部署:构建成功后,自动将生成的静态文件部署到 GitHub Pages。

  3. 环境一致性:确保 CI 环境和本地构建环境一致,避免"本地能跑,线上报错"的尴尬。

技术选型

考虑到 HagiCode 是基于 Docusaurus 构建的(一种非常流行的 React 静态站点生成器),我们可以利用 GitHub Actions 来实现这一目标。

配置 GitHub Actions 工作流

GitHub Actions 是 GitHub 提供的 CI/CD 服务。通过在代码仓库中定义 YAML 格式的工作流文件,我们可以定制各种自动化任务。

创建工作流文件

我们需要在项目根目录下的.github/workflows文件夹中创建一个新的配置文件,比如叫deploy.yml。如果文件夹不存在,记得先手动创建一下。

这个配置文件的核心逻辑如下:

  1. 触发条件:监听main分支的push事件。

  2. 运行环境:最新版的 Ubuntu。

  3. 构建步骤

  • 检出代码

  • 安装 Node.js

  • 安装依赖 (npm install)

  • 构建静态文件 (npm run build)

  • 部署步骤:使用官方提供的action-gh-pages将构建产物推送到gh-pages分支。

  • 关键配置代码

    以下是我们最终采用的配置模板:

    name: DeploytoGitHubPages # 触发条件:当推送到 main 分支时 on: push: branches: -main # 可以根据需要添加路径过滤,比如只有文档变动才构建 # paths: # - 'docs/**' # - 'package.json' # 设置权限,这对于部署到 GitHub Pages 很重要 permissions: contents:read pages:write id-token:write # 并发控制:取消同一分支的旧构建 concurrency: group:"pages" cancel-in-progress:false jobs: build: runs-on:ubuntu-latest steps: -name:Checkout uses:actions/checkout@v4 # 注意:必须设置 fetch-depth: 0,否则可能导致构建版本号不准确 with: fetch-depth:0 -name:SetupNode uses:actions/setup-node@v4 with: node-version:20# 建议与本地开发环境保持一致 cache:'npm'# 启用缓存可以加速构建过程 -name:Installdependencies run:npmci # 使用 npm ci 而不是 npm install,因为它更快、更严格,适合 CI 环境 -name:Buildwebsite run:npmrunbuild env: # 如果你的站点构建需要环境变量,在这里配置 # NODE_ENV: production # PUBLIC_URL: /your-repo-name -name:Uploadartifact uses:actions/upload-pages-artifact@v3 with: path:./build# Docusaurus 默认输出目录 deploy: environment: name:github-pages url:${{steps.deployment.outputs.page_url}} runs-on:ubuntu-latest needs:build steps: -name:DeploytoGitHubPages id:deployment uses:actions/deploy-pages@v4

    实施过程中的坑点

    在实际操作中,我们遇到了一些问题,这里分享出来希望大家能避开(或者提前准备好解决方案)。

    1. GitHub Token 权限问题

    最开始配置的时候,部署总是报错 403 (Forbidden)。查了好久才发现,是因为 GitHub 默认的GITHUB_TOKEN并没有写入 Pages 的权限。

    解决方案:在仓库的Settings->Actions->General->Workflow permissions中,务必选择“Read and write permissions”

    2. 构建目录路径错误

    Docusaurus 默认把构建好的静态文件放在build目录。但是有些项目(比如 Create React App 默认是build,Vite 默认是dist)可能配置不一样。如果在 Actions 中报错找不到文件,记得去docusaurus.config.js里检查一下输出路径配置。

    3. 子路径问题

    如果你的仓库不是用户主页(即不是username.github.io),而是项目主页(比如username.github.io/project-name),你需要配置baseUrl

    docusaurus.config.js中:

    module.exports = { // ... url: 'https://HagiCode-org.github.io', // 你的 GitHub URL baseUrl: '/site/', // 如果你的仓库叫 site,这里就填 /site/ // ... };

    这一点很容易被忽略,配置不对会导致页面打开全是白屏,因为资源路径加载不到。

    验证成果

    配置完所有东西并推送代码后,我们就可以去 GitHub 仓库的Actions标签页看戏了。

    你会看到黄色的圆圈(工作流正在运行),变绿就代表成功啦!如果变红了,点击进去查看日志,通常都能排查出问题(大部分时候是拼写错误或者路径配置不对)。

    构建成功后,访问https://<你的用户名>.github.io/<仓库名>/就能看到崭新的站点了。

    总结

    通过引入 GitHub Actions,我们成功实现了 HagiCode 文档站的自动化部署。这不仅节省了手动操作的时间,更重要的是保证了发布流程的标准化。现在不管是哪位小伙伴更新了文档,只要合并到main分支,几分钟后就能在线上看到最新的内容。

    核心收益

    • 效率提升:从"手动打包、手动上传"变成"代码即发布"。

    • 降低错误:消除了人为操作失误的可能性。

    • 体验优化:让开发者更专注于内容质量,而不是被繁琐的部署流程困扰。

    虽然配置 CI/CD 刚开始有点麻烦(尤其是各种权限和路径问题),但这是一次性投入,长期回报巨大的工作。强烈建议所有静态站点项目都接入类似的自动化流程。

    参考资料

    • GitHub Actions 官方文档

    • Docusaurus 部署指南

    • [actions-gh-pages Action 使用说明](https://github.com peaceiris/actions-gh-pages)


    感谢您的阅读,如果您觉得本文有用,快点击下方点赞按钮👍,让更多的人看到本文。

    本内容采用人工智能辅助协作,经本人审核,符合本人观点与立场。

    元信息

    • 本文作者:newbe36524

    • 本文链接:https://hagicode-org.github.io/site/blog/2026/01/25/docusaurus-auto-deployment-with-github-actions

    • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

http://www.jsqmd.com/news/336307/

相关文章:

  • 基于springBoot的社区动物管理系统的设计与实现
  • 『n8n』初识界面
  • 2026年行业内做得好的仓库货架批发厂家推荐榜单,穿梭式货架/重型货架/金属货架/悬臂式货架,仓库货架企业有哪些 - 品牌推荐师
  • 基于SpringBoot的摄影服务平台设计开发实现
  • 《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(9)-Wireshark的常用的low(基础)操作-上篇 - 北京
  • 2026年行业内诚信的升降机厂商电话,液压升降平台/防爆升降机/装车平台/升降机/自行走升降机,升降机销售厂家哪家好 - 品牌推荐师
  • 基于SpringBoot的勤工俭学管理系统设计与实现
  • 2026武汉护肤门店优质推荐榜云兮颜领衔 - 资讯焦点
  • 探讨湖北地区芝麻酱认证厂家,个性化定制怎么收费 - 工业品牌热点
  • AI专著写作新玩法:特色工具介绍,助你轻松应对复杂专著创作
  • <span class=“js_title_inner“>Python:类对象</span>
  • AI写论文宝藏合集!4款AI论文生成神器,高效完成学术写作!
  • 分析广东建材板材开割源头厂家,世翔金属价格多少 - 工业品网
  • AI专著写作新趋势:优质工具盘点,为你的学术创作加速
  • 学术专著撰写新途径!AI专著生成工具,开启创作新时代
  • 2026年可移动/车载/撬装/污泥脱水卧螺离心机厂家权威推荐:适配多场景固液分离的全系解决方案 - 品牌推荐官
  • AI写论文的秘密武器!4款AI论文写作工具,助力学术论文创作!
  • 文登潮汐表查询2026-02-04
  • AI写论文诀窍,4款AI论文生成工具助力,快速产出高质量论文!
  • 盘点全国北极绒生产厂,口碑靠谱且交货周期合理的有哪些 - 工业设备
  • 2026年好用的割圈绒生产厂推荐,供应稳定品牌有哪些 - 工业品牌热点
  • 生成引擎优化(GEO)在提升数字营销效果中的重要角色
  • 2026年中国旅行茶具市场分析,口碑好的旅行茶具品牌 - myqiye
  • 分析靠谱的建筑资质代办公司,天津广运达优势尽显 - myqiye
  • 基于大数据爬虫+Hadoop的电影数据分析系统开题报告
  • 2026年上海口碑好的当幸烘焙机构排名,值得合作的企业有哪些 - mypinpai
  • Buildroot系统镜像编译
  • 2026男士氨基酸洁面8款实测!哪款好用?专利控油屏障修护,这款闭眼入不踩雷 - 资讯焦点
  • 大疆Pocket 3运动相机回收:专业团队,安全可靠 - 金诚数码回收
  • 超越基础:用 Pydantic V2 与 FastAPI 构建坚不可摧的请求验证体系