前言

GitHub Actions 是 GitHub 于 2018 年推出的自动化流程工具,它的功能很强大。因为是 GitHub 自家的工具,所以我们无需再额外注册账号,而且 GitHub Actions 也集成在了 GitHub 界面上。

创建仓库

在 GitHub 上创建仓库,一个是源码仓(blog),一个是静态仓(xxx.github.io)静态仓相信你已经有了

关于隐私问题,再创建源码仓的时候,请设为私有(Private

创建 Actions

在你的博客根目录创建 .github\workflows\main.yml

也可以右键 Git Bash 执行如下命令:

1
mkdir .github && cd .github && mkdir workflows && cd workflows && touch main.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
42
43
44
45
46
47
48
49
50
51
52
name: Auto Dep Hexo

on:
push:
branches:
- master # 如果你的是 main 那就改 main

release:
types:
- published

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Check 分支
uses: actions/checkout@v2
with:
ref: master # 如果你的是 main 那就改 main

- name: Install Node
uses: actions/setup-node@v1
with:
node-version: "12.x"

- name: Cache 依赖
uses: actions/cache@v2.1.1
id: cache-dependencies
with:
path: node_modules
key: ${{runner.OS}}-${{hashFiles('**/package-lock.json')}}

- name: Install 依赖
if: steps.cache.outputs.cache-hit != 'true'
run: |
export TZ='Asia/Shanghai'
npm install hexo-cli -g
npm install --save

- name: 生成 Static File
run: |
hexo clean
hexo generate
gulp # 如果你没用到 gulp 压缩,请注释

- name: Deploy
run: |
git config --global user.name "github-actions"
git config --global user.email "github-actions@users.noreply.github.com"
# 这里请改成你静态的仓库
git clone https://github.com/xxx/xxx.github.io.git .deploy_git
hexo deploy

生成 TOKEN

前往生成 TOKEN ,名字随意,勾选 repo,然后复制 TOKEN 记在小本本上,因为只会显示一次,忘记也没事,可以重新生成

修改博客根目录的配置文件(_config.yml)格式如下图,xxx 代表你 GitHub 用户名,xxx.github.io 代表你博客的静态仓,最后那个是分支 ( 废话 )

https://TOKEN@github.com/xxx/xxx.github.io,master

img

推送

是吧整个博客推送到刚刚创建的私有仓,然后是利用 Actions 自动化部署到你的静态仓

1
2
3
git add .
git commit -m "update"
git push -u origin master # 是 main 你就改 main

img

已知问题

主题目录下有 .git (隐藏文件)自动部署失败

解决:

直接 SHIFTDEL 掉,简单粗暴 😊

img