Intro
作为个人的技术笔记,将 Hexo Blog 以 Github Pages 的方式对外发布。Hexo Cli 提供了较好的发布方式(hexo deploy
),足以满足低频发布操作。
今天的实践是:通过 Github Actions 来“持续集成”发布 Hexo Blog Site 到 Github Pages。
实践的过程中遇到各种问题,对环境做更新:
Nodejs:v12.19.0
->v14.15.4
Hexo:3.9.0
->5.3.0
Github Actions
GitHub Actions让你很容易自动化所有的软件工作流程,现在拥有世界级的CI/CD。从GitHub上构建、测试和部署你的代码。让代码评审、分支管理和问题分类按照您想要的方式工作。
Github Actions 特性:https://github.com/features/actions
Github Actions 文档:https://docs.github.com/cn/actions
Github Actions 市场:https://github.com/marketplace?type=actions
Hexo Action
Github Actions 市场已经有了相关的 Action:Hexo Action。
https://github.com/marketplace/actions/hexo-action
https://github.com/sma11black/hexo-action
Operation
参考 Hexo Action 使用手册,
- 创建密钥对(Github Pages Deploy Keys 使用公钥,Github Source Repos Secrets
DEPLOY_KEY
使用私钥); - 在 Github Source Repos 添加流程文件,如在
.github/workflows
下创建deploy.yml
deploy.yml
示例
1 | # This is a basic workflow to help you get started with Actions |
name
Actions 的名称on
触发 Actions 的事件jobs
执行的一系列任务,每个任务是单独的运行环境,runs-on
指定运行环境steps
任务包含一系列操作步骤,每个步骤是一个 Action,如 Hexo Deploy 本例中使用uses: sma11black/hexo-action@v1.0.4
编辑完成 deploy.yml
后提交变更,push 到 Hexo Source Repo。
FAQ
将主题 next 作为 git module(Github Actions: hexo-action 用法)
因为 hexo 站点与 next 主题是完全独立的,此处在构建时 next 做为资源依赖参与构建。
1 | rm -rf themes/next |
远程仓库使用 SSH 方式访问而非 Https
出现的错误:
1 | fatal: could not read Username for 'https://github.com': No such device or address |
修改 hexo/_config.yml 部署相关配置,使用 SSH 方式访问 Github Pages Repo(https://github.com/sma11black/hexo-action/issues/5)
1 | deploy: |
(完)