0%

使用GithubAction自动发布hexo

嘛为了方便起见,还是把代码和 public 的分开好了……其实不分开也没有问题

利用 Github Actions 自动部署 Hexo 博客 | Sanonz

如何使用 GitHub Actions 自动部署 Hexo 博客 - 掘金

参考这个比较好,那么首先是变换一下

1.直接修改:

git remote set-url [url]

2.先删原有地址,再添加到新地址:

git remote rm origin
git remote add origin [url]
或者
git remote rename origin old-origin
git remote add origin [url]

先 reset,然后用 branch -u 修改

1
2
$ git branch -u origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.

顺便解析一下

git remote add origin git@github.com:acyanbird/blog.git
git branch -M main

强制重命名当前分支为 main,-m 是不强制

-m

–move

Move/rename a branch, together with its config and reflog.

git push -u origin main

首先设定一下一对密钥

`

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

这个生成的密钥简单很多,不会一大坨嗯

在当前目录下有一对密钥

使用这个命令复制密钥到剪贴板,注意需要首先安装 xclip

xclip -sel clip < 文件位置

哦卧槽发现有人提供已经写好的format

GitHub - theme-keep/hexo-deploy-github-pages-action: 🚀 GitHub action for deploying a Hexo project to GitHub pages.

你是一个一个一个好人啊啊啊啊啊啊!

设置一下 token

复制这个 yaml 到博客根目录的 /.github/workflows/

GitHub - theme-keep/hexo-deploy-github-pages-action: 🚀 GitHub action for deploying a Hexo project to GitHub pages.

然后说是直接 push 就可以了,试试看

嘛不行,看起来这个需要使用相应主题所以用一下这个的

利用GitHub+Actions自动部署Hexo博客 - 云+社区 - 腾讯云

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
# workflow name
name: Hexo Blog CI

# master branch on push, auto run
on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
# check it to your workflow can access it
# from: https://github.com/actions/checkout
- name: Checkout Repository main branch
uses: actions/checkout@main

# from: https://github.com/actions/setup-node
- name: Setup Node.js 16.x
uses: actions/setup-node@main
with:
node-version: "16.x"

- name: Setup Hexo Dependencies
run: |
npm install hexo-cli -g
npm install

- name: Setup Deploy Private Key
env:
HEXO_DEPLOY_PRIVATE_KEY: ${{ secrets.BLOG_KEY }}
run: |
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts

- name: Setup Git Infomation
run: |
git config --global user.name 'acyanbird'
git config --global user.email 'acyanbird@gmail.com'
- name: Deploy Hexo
run: |
hexo clean
hexo generate
hexo deploy

node ver 通过 node -v 查看

checkout 的解析看这个 workflow - GitHub - jobs : what is : use actions/checkout - Stack Overflow

基本上就是先 fetch 然后 checkout 到某个 branch,一般就是 main。git pull = git fetch + git merge,剩下的都比较好理解了,现在试试看吧

这个版本老了,所以记得改成 main

理论上来说其实不要放私钥的……不过 token 不会用,以后再说吧