用GitHub Actions自动构建EGO博客

用GitHub Actions自动构建EGO博客

💡 原文中文,约3700字,阅读约需9分钟。
📝

内容提要

本文介绍了如何使用 GitHub Actions 自动化博客构建过程。通过将硬编码路径改为从环境变量读取,配置 workflow 文件,实现了在每次推送源文件时自动构建和提交,解决了构建过程中的多个问题,最终实现了增量构建的顺利运行。

🎯

关键要点

  • 使用 EGO(Emacs + Git + Org-mode)作为静态站点生成器,源文件存放在 source 分支,生成的 HTML 存放在 master 分支。

  • 通过 GitHub Actions 自动化博客构建过程,每次推送源文件时自动构建和提交。

  • 将硬编码路径改为从环境变量读取,以确保在 CI 环境中路径的兼容性。

  • 在 workflow 文件中配置了两个并行运行的 Job,分别用于提交 Habitica 任务和构建博客。

  • 解决了 CI 环境中缺少依赖包的问题,通过在 package-install 列表中添加必要的包。

  • 处理了 git 提交时未配置用户信息的问题,确保在构建后能够成功提交变更。

  • 发现 CI 环境中 repo 状态为 edited 的原因,并通过将 EGO 和 master 分支 checkout 到 /tmp 下解决了增量构建的问题。

  • 最终实现了增量构建的顺利运行,推送源文件后自动构建发布,提升了工作效率。

延伸问答

如何使用 GitHub Actions 自动构建 EGO 博客?

通过配置 workflow 文件,使用 GitHub Actions 在每次推送源文件时自动构建和提交博客。

EGO 博客构建中遇到的主要问题是什么?

主要问题包括硬编码路径导致的兼容性问题和 CI 环境中缺少依赖包。

如何解决 CI 环境中缺少依赖包的问题?

通过在 package-install 列表中添加必要的包,如 ht 和 dash,来解决依赖问题。

为什么在 CI 环境中 git 提交时会失败?

因为在构建后未配置 git 用户信息,导致提交失败。

如何确保 EGO 和 master 分支的增量构建正常运行?

将 EGO 和 master 分支 checkout 到 /tmp 下,避免与 source repo 产生未跟踪目录。

使用 GitHub Actions 自动构建博客的最终效果如何?

最终实现了增量构建的顺利运行,推送源文件后自动构建发布,提升了工作效率。

➡️

继续阅读