
Github自动部署博客
此前经常遇到一个问题,每次写完博客,需要使用繁杂的命令去部署博客,这大大降低了写作动力,看到很多博主都在使用GitHub Actions来自动部署,我也去学习了一番。
在本篇博客中,我将引导你通过 GitHub Actions 自动部署你的 Hexo 博客到 GitHub Pages。这个过程不仅能节省你的时间,还能让你的部署过程更加自动化和高效。我们将从创建一个 GitHub Actions 工作流程开始,逐步讲解每一个步骤的作用和配置方法。
前言
GitHub Actions 是一个强大的自动化工具,它允许你在 GitHub 仓库中自动执行软件开发工作流程。通过使用 GitHub Actions,你可以自动化你的构建、测试和部署任务,使得软件开发过程更加流畅。
创建 GitHub Actions 工作流程
创建工作流程文件
在你的 Hexo 博客仓库中,创建一个
.github/workflows
目录(如果还没有的话),然后在该目录下创建一个新的 YAML 文件,例如deploy.yml
。这个文件将包含你的 GitHub Actions 工作流程配置。配置工作流程触发条件
yaml1
2
3
4
5
6
7
8
9name: 自动部署
on:
push:
branches:
- master
release:
types:
- published这段配置定义了工作流程的名称和触发条件。当你向
master
分支推送代码或发布新的 release 时,这个工作流程将会被触发。配置部署任务
在
jobs
部分,我们定义了实际执行的任务,包括环境设置、安装依赖、生成静态文件和部署到 GitHub Pages。yaml1
2
3
4
5
6
7
8
9
10
11
12
13jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 检查分支
uses: actions/checkout@v2
with:
ref: master
fetch-depth: 0
- name: Sync local file timestamps
run: |
git ls-files -z | while read -d '' path; do touch -d $(git log -1 --format="@%ct" "$path") "$path"; done
...这里详细列出了每个步骤的作用,从检查分支到部署到 GitHub,每一步都是自动化完成的。
安装 Node.js 和 Hexo
使用
actions/setup-node@v1
来安装 Node.js,并设置 Node.js 版本为 “16.x”。之后安装 Hexo CLI 并配置时区。yaml1
2
3
4
5
6
7
8- name: 安装 Node
uses: actions/setup-node@v1
with:
node-version: "16.x"
- name: 安装 Hexo
run: |
export TZ='Asia/Shanghai'
npm install hexo-cli --save缓存依赖项
使用
actions/cache@v3
来缓存node_modules
目录,以加速后续的构建过程。yaml1
2
3
4- name: 缓存 Hexo
id: cache-npm
uses: actions/cache@v3
...生成静态文件并部署
最后,通过运行 Hexo 的
clean
和generate
命令来生成静态文件,并使用自定义脚本将静态文件推送到 GitHub Pages。yaml1
2
3
4
5
6- name: 生成静态文件
run: |
hexo clean
hexo generate
gulp
...
结语
通过上述步骤,你可以将 Hexo 博客的部署过程完全自动化。这样,每当你更新博客内容并推送到 master
分支时,GitHub Actions 会自动为你构建并部署最新的博客到 GitHub Pages,让你的博客保持最新状态,而无需手动干预。
希望这篇教程能帮助你更有效地管理和部署你的 Hexo 博客。如果你有任何问题或想分享你的自动化部署经验,请在评论区留言。