1.前言

我不懂编程,Git,Github Actions的原理和复杂配置,这是我反复查找尝试成功的一种方法,分享出来。

2.提交所有文件

注意,以下所有操作都不用编辑hexo的_config.yml。

注意,配置好后存放编译好的文件的仓库下的所有文件的创建日期都是最新的,且只会有存在一条Commits(编辑记录),所以在配置前,你应该提前为每个文章配置类似于date的参数,以免默认读取创建时间造成文章时间信息错乱。

通常情况使用hexo d命令推送到Github只会推送编译好的public文件夹下的文件,不包括_config.yml以及其他资源,所以我们的第一步是再创建一个Github仓库,把所有的文件(可以先执行hexo c,不需要public文件夹)都提交到这个仓库。

3.获取Github的Token

单击右上角头像-Settings-Developer settings-Personal access tokens
在这里创建一个Tokens(classic),Expiration选永不过期,下面勾选repo(子选项全部都勾上),和workflow,弹出的ghp开头的字段保存好,只会显示一次。

4.配置变量

切换到我们新创建的有全部文件的那个仓库-Settings-Secrets and variables-Actions,在这里创建一个字段,名称GH_TOKEN,下面填ghp字段。

5.配置Actions

找到新创建的仓库,选择Actions,出来的界面选择下面的小字,自定义一个workflows。
然后就会自动切换到编辑器,编辑的是.github/workflows/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
42
43
name: Hexo自动编译

on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-24.04

steps:
- name: 读取仓库
uses: actions/checkout@v3

- name: 加载Node.js
uses: actions/setup-node@v3
with:
node-version: '20.x'

- name: 设置时区与安装依赖
run: |
npm install hexo-deployer-git hexo-cli -g
sudo timedatectl set-timezone "Asia/Shanghai"
- name: 执行hexo c和hexo g
run: |
hexo clean
hexo generate

- name: 配置Git
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'

- name: 推送
run: |
cd public/
git init
git add -A
git commit -m "Hexo自动编译"
git branch -M main
git remote add origin https://你的Github用户名:${{ secrets.GH_TOKEN }}@github.com/你的Github用户名/你的网站存放编译好的文件的仓库名.git
git push origin HEAD:main -f

前面都不重要,重点是最下面推送,按照我的提示更改,测试是否正常推送。