Github Actions自动部署Hexo个人博客到Github Pages仓库
版权申明:本文为原创文章,转载请注明原文出处
原文链接:http://blog.pp6f.com/2022/02/17/Github/Github_Actions_Hexo/
通过
Github Action创建workflow,当Hexo博客源码仓库 有文章或代码提交时触发workflow来执行Hexo生成静态网页并push推送到Github Pages的仓库!
索引
前言
- 本文介绍如何使用
Action运行的workflow来执行生成Hexo并发布到Github仓库。 - 关于Action详细介绍 请参考我的博文 Github Actions的认识与使用
- 关于Hexo的使用与主题的使用 可以参考我博客的文章
- 关于Git,Github,Github Desktop相关可以参考我的博文 使用git和Github Desktop操作Github仓库
- 创建
Github仓库用于存放Hexo源代码。 以下称为:Hexo源码仓库 - 创建
Github Pages仓库用于存放Hexo生成的静态网页。以下称为:Pages页面仓库 - 创建推送到静态网页仓库的
SSH密钥 - 在
Hexo源码仓库创建Action
创建两个Github仓库
创建Hexo源码仓库
- 打开Github登录你的账号 - 点击右上角的
+加号 - 点击New repository - 在
Repository name输入仓库名 这里自定义填 - 勾选
Private私有仓库 这里只是存放源码不需要公开 - 勾选
Add a README file添加一个自述文件 - 最后点击
Create repository创建仓库 - 创建好后 将
Hexo生成的博客源码文件push到Hexo源码仓库里 包括node_modules文件夹下的所有内容
创建Pages页面仓库
- 打开Github登录你的账号 - 点击右上角的
+加号 - 点击New repository - 在
Repository name输入xxx.github.ioxxx自定义字符 - 勾选
Public公开仓库 因为是Pages页面仓库所以必须要选Public公开仓库 - 勾选
Add a README file添加一个自述文件 - 最后点击
Create repository创建仓库 - 创建成功后 需要配置下
Github Pages点击 Settings - Pages - 选择一个分支 - Save - 出现以下提示表示你的
Pages可以访问了Your site is published at https://xxx.github.io/
- 如果需要填自己的域名 可以在下面的
Custom domain里面填写 修改后不要忘记到域名商修改解析地址到xxx.github.io
创建SSH密钥
这里创建的
SSH密钥是留给Hexo源码仓库触发workflow执行action运行hexo生成静态网页,push推送到pages页面仓库时用的
创建SSH密钥
- 任意位置打开命令行工具
- 输入以下命令创建一个
SSH密钥ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/xxx_rsaGit bash 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20$ ssh-keygen -t rsa -C "youremail@example.com" -f ~/.ssh/xxx_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): //这里输入回车
Enter same passphrase again: //这里输入回车
Your identification has been saved in /c/Users/xxx/.ssh/xxx_rsa
Your public key has been saved in /c/Users/xxx/.ssh/xxx_rsa.pub
The key fingerprint is:
SHA256:t0Q2AznSFmNe1GqgByJ61Z39Nswuwpu5/jQF12lUTc4 1@1
The key's randomart image is:
+---[RSA 3072]----+
| o..o.+=+o..o+|
| . . =oS+ o.+.|
| . . =**o.+ E|
| .o.=O. |
| .B.o+.. |
| o.o. |
| =+. |
| +. . |
| .oo. |
+----[SHA256]-----+ - 会创建2个文件
xxx_rsa(私钥),xxx_rsa.pub(公钥)
配置公钥到Pages页面仓库
- 进入
Pages页面仓库 - Settings - Deploy keys - 点击Add deploy key
Title填写自定义标题Key填写刚刚生成的xxx_rsa.pub(公钥) 用记事本打开复制里面的内容 粘贴到Key里- 勾选
Allow write access允许写入权限 一定要勾选 - 点击
Add key
配置Hexo源码仓库私钥变量
- 进入
Hexo源码仓库 - Settings - Secrets - Actions - 点击New repository secret
Name输入(PAGES_SSH_RSA),可以自定义 注意大小写 之后要用到Value填写更改生成的xxx_rsa(私钥) 用记事本打开复制里面的内容 粘贴到Value里- 点击
Add secret
配置Hexo源码的_config.yml
- 找到deploy项 修改为你的
Pages页面仓库的地址_config.yml 1
2
3
4deploy:
type: git
repo: git@github.com:xxx/xxx.github.io.git
branch: main
创建Action
现在我们可以开始创建Action 详细可以参考 Github Actions的认识与使用
- 进入
Hexo源码仓库- 点击Actions- 点击set up a workflow yourself - 在
.github/workflows目录下创建一个后缀为.yml格式的文件,文件名可以自定义。 - 在编辑框输入以下代码
main.yml 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42name: Hexo Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 1. git checkout...
uses: actions/checkout@v2
- name: 2. setup nodejs...
uses: actions/setup-node@v2
with:
node-version: '16'
- name: 3. install hexo...
run: |
npm install hexo-cli -g
npm install --save hexo-deployer-git
npm install
- name: 4. config git
env:
ACTION_DEPLOY_KEY: ${{ secrets.PAGES_SSH_RSA }}
run: |
mkdir -p ~/.ssh/
echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.email "yourgithubIDmail@xx.com"
git config --global user.name "yourgithubID"
- name: 5. hexo generate public files and Deploy hexo
run: |
hexo clean
hexo g
hexo deploy - 替换
PAGES_SSH_RSA变量名为刚刚你设置的yourgithubIDmail@xx.com你的Github账号邮箱yourgithubID你的Github账号名 - 点击右上角的
Start commit在弹出的对话框点击Commit new file。
创建完成后 在进入Actions会看到所有workflows中刚刚创建的workflow。
结束
ok! 到这里基本就结束了。
以后每次添加 修改 删除文章时,只要push推送到Hexo源码仓库,就会自动执行action的workflow生成静态网页并且自动部署到Pages页面仓库了!
Github Actions自动部署Hexo个人博客到Github Pages仓库

