前言
上个星期,我尝试使用Hexo + GitHub Page搭建个人Blog,在一个多星期的使用过程中,发现了一些问题,比如说打算写一篇博文的时候,必须经历:
- 在博客根目录中
hexo n '博客名'
- 点击进入
source/_post
文件夹中找到这个md文件并打开 - 写博客
- 然后还要经历
hexo clean
,hexo g
,hexo d
三连
并且一旦电脑主机发生故障,或者更换电脑,本地存储的文章面临丢失的风险,这时部门老大给我指了条明路,在GitHub上用CI/CD实现快速部署,于是才有了这次Blog的升级。
GitHub Action
GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。
简单介绍下GitHub Actions 的术语。
- workflow:持续集成一次运行的过程,就是一个 workflow。
- job:一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
- step:每个 job 由多个 step 构成,一步步完成。
- action:每个 step 可以依次执行一个或多个命令(action)。
对GitHub Action的详细了解,可以参考官方网站 和 阮一峰老师的入门教程。
将本地文件转移到GitHub仓库
新建一个GitHub仓库
创建一个公开或私密的仓库都可以,我这里创建的是私密性仓库。

创建密钥
在终端中输入ssh-keygen -t rsa -C "yourmail@mail.com"
,一路回车,如下图所示,系统会默认在Users/home/.ssh文件夹下生成公钥和私钥文件,id_rsa是私钥文件,id_rsa.pub是公钥文件。


将公钥添加到GitHub中
在GitHub首页点击你的头像,选择settings
->SSH and GPG keys
点击New SSH key
按钮。title
可以随便填写,value
处将公钥文件中的内容复制粘贴过来,保存即可。


添加私钥至仓库的settings
进入仓库的settings
-> Secrets
,点击new repository secret
,title
输入HEXO_DEPLOY_PRIVATE_KEY
,创建私钥。


将本地文件上传到仓库
- 在本地Blog文件夹下运行
git init
进行初始化 - 关联远程仓库
git remote add origin git@github.com:Simon-cp/My- Blog.git
git pull --rebase origin master
和远程仓库进行一个同步- 依次进行
git add .
,git commit -m "init repo"
,git push -u origin +master
,提交上传到仓库

添加GitHub Action
来到本章节最核心的部分,自动化部署的GitHub Action创建。

将一下脚本复制粘贴到Action脚本窗口中,点击创建。
1 | # workflow name |

查看Action,build的任务是否正常完成,若正常完成则CI/CD部署成功!
效果展示


当博客编写完成,点击提交后,后续由GitHub自动部署和提交到我的个人主页
欢迎各位访问和探讨。
问题清单
问题:
由于当初在本地使用themes时,是使用git clone url将文件拷贝到本地,当我将本地仓库和远程仓库建立连接时,远程仓库其实上连接到当初clone的url上,导致themes无法使用,具体表现是blog首页显示空白。
解放方案:
不要使用git clone,而是直接在项目中下载成zip,再放到本地仓库,push到远程仓库,这样的文件将与原仓库断开链接,真正成为自己的文件,才能够让hexo调用和使用。