Hexo部署到GitHub

资料来源

环境

Windows

前提条件

  1. 需要有个人的GitHub
  2. 建立至少一个存储库,储存库要求如下:
    • 输入 username.github.io 作为存储库名称。 将 username 替换为您的 GitHub 用户名。
    • 用户或组织名称包含大写字母,必须使用小写字母
    • 仓库的可见性为公开(Public
  3. 参考官方文档

方式一

1.博客根目录下安装hexo-deployer-gitgit地址

1
npm install hexo-deployer-git --save

2.修改根目录下_config.yml

1
2
3
4
deploy:
type: git # 类型
repo: git@github.com:username/username.github.io.git #仓库地址
branch: master # 提交的分支

注意事项:
1. 我是用的ssh的方法非https的方法
2. 需要在你的GitHub账号添加秘钥
添加方式见文档使用 SSH 连接到 GitHub

ssh 生成方式

1
ssh-keygen -t  -C "your_email@example.com"

命令
结果

3.执行命令

1
2
# 清除缓存防止将缓冲提交
hexo clean
1
hexo deploy

4.成功后可在GitHub上查看如下

GitHub

使用GitHub Actions自动部署方式

此方法和以下yml都来自 Fluid’s blog

将Hexo的博客项目上传至GitHub

1.上传项目到GitHub

2.如下图设置

第一步

第二步骤

如上图 name 英文字母大写如果用小写会转成大写可以带下划线, value 填写上面ssh生成文件中不带.pug后缀文件中的内容,记住name将下面yml中${{ secrets.SSH_PRIVATE }}中的SSH_PRIVATE换成自己的

新建 ***.yml

必须将工作流程文件存储在仓库的 .github/workflows 目录中。

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
42
43
44
45
46
name: Deploy                      # Actions 显示的名字,随意设置

on: [push] # 监听到 push 事件后触发

jobs:
build:

runs-on: ubuntu-latest

steps:
- name: Checkout # 拉取当前执行 Actions 仓库的指定分支
uses: actions/checkout@v2
with:
ref: master

- name: Update Submodule # 如果仓库有 submodule,在这里更新,没有则删掉此步骤
run: |
git submodule init
git submodule update --remote

- name: Setup Node # 安装 Node 环境
uses: actions/setup-node@v1
with:
node-version: "16.x"

- name: Hexo Generate # 安装 Hexo 依赖并且生成静态文件
run: |
rm -f .yarnclean
yarn --frozen-lockfile --ignore-engines --ignore-optional --non-interactive --silent --ignore-scripts --production=false
rm -rf ./public
yarn run hexo clean
yarn run hexo generate

- name: Hexo Deploy # 部署步骤,这里以 hexo deploy 为例
env:
SSH_PRIVATE: ${{ secrets.SSH_PRIVATE }}
GIT_NAME: yourname
GIT_EMAIL: your@email.com
run: |
mkdir -p ~/.ssh/
echo "$SSH_PRIVATE" | tr -d '\r' > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "$GIT_NAME"
git config --global user.email "$GIT_EMAIL"
yarn run hexo deploy

注意:上面yml中node版本可以根据自己环境中的版本更换我的是16的版本所以换成了16。

推送代码

每次推送像github的时候会通过 github actions 把代码推向 username.github.io 的储存库的指定分支如果失败可以点击 Action 查看失败原因

图示1

点进去之后可以查看出错的地方

图示2

注:问题可能出在Hexo Deploy查看自己储存库setting->secrets->Actions->Actions secrets是否正确

结语

可以先通过方法一成功上传并访问username.github.io查看到后在使用方法二,上传成功后有最长20分钟的延迟可查看访问

当然也可以在同一个储存库不同的分支下进行如上操作,因为username.github.io这个库是公开的所以不建议这么操作

附赠_config.yml中部分修改内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
url: https://aninchoftime.github.io
permalink: :year/:month/:day/:title/
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: git@github.com:AnInchOfTime/aninchofTime.github.io.git
branch: master

Hexo部署到GitHub
https://crudclass.github.io/2022/03/21/hexo/hexo3/
作者
Zero
发布于
星期一, 三月 21日 2022, 11:01 上午
许可协议