0%

使用本地服务器结合github action推送github pages

需求

网上很多人使用github action,借助github的服务器来进行博客的推送,但是,当你博客文章数量较多,且使用了国内的CDN,例如本博客使用了阿里云CDN,本站的解析是国外IP访问的是github仓库的网站,国内用户访问的是阿里云CDN的节点,在使用github action的时候,发现推送速度非常慢,原因是github的服务器在国外,往阿里云服务器推送的时候速度很慢。所以,每次更新博客,往往需要10分钟的时间才能推送好。这是不能忍受的。。。

我本地有一台服务器,装了Proxmox来管理虚拟机,且有公网IP,接助GitHub action来连接到我本地推送服务器进行推送

整个流程如图:

  • 本地git pull github仓库中的文件到本地博客开发服务器,进行博客开发。
  • 博客写完后,git push到github仓库
  • github仓库根据仓库中的yaml文件,创建github action,action的功能是连接SSH到Github推送服务器
  • Github推送服务器上已经安装好了hexo等博客需要的环境,进行博客推送

这样操作,全自动的,且速度非常快,整个流程在1分钟左右。

附上github action的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
name: Hexo deploy by remote ssh
on:
push:
branches:
- master
jobs:

build:
name: Build
runs-on: ubuntu-latest
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: cd blog;
git pull https://olixu:${{ secrets.PASSWORD }}@github.com/olixu/blog.git;
hexo clean;
hexo g;
hexo d;
If you like my blog, please donate for me.