准备工作
在开始第三部分前配置前,你需要有如下准备:
github和gitee仓库- 私有仓库
hexo-blog放在github和gitee上 - 本地的
hexo-blog源码仓库 - 一个已经备案的域名
使用github的action实现自动化release部署
在本地hexo-blog仓库中新增文件夹.github/workflows/。
在.github/workflows/文件夹下新增release.yml文件,配置如下:
[username]替换成你的用户名
[useremail]替换成你的邮箱
xxx.xxx替换成你的域名
1 | # workflow name |
配置release的公钥和私钥
新建一个
github上的hexo-blog远程私有仓库在
hexo-blog仓库的Settings=>Secrets=>Actions上点击New repository secret新增一个secret用于hexo博客的部署Name Secret HEXO_DEPLOY_PRIVATE_KEY本地的主机: ~\.ssh\hexo-blog,(第一部分操作生成的密匙)在
github上的Settings=>SSH and GPG keys =>SSH keys上点击New SSH key新增一个公钥用于hexo博客的部署Title Key type Key HEXO_DEPLOY_KEYAuthentication Key本地的主机: ~\.ssh\hexo-blog.pub,(第一部分操作生成的密匙)
注释掉hexo-blog的gitee部署配置
打开hexo的_config.yml配置文件更改为如下配置:
[username]替换成你的用户名
xxx.xxx替换成你的域名
1 | deploy: |
这样做的目的是因为通过action将博客从github部署到gitee上会出现部署超时的情况,所以我们后续将实现同步工作流将github的博客同步到gitee上。
使用github的action实现自动化synchronize同步到gitee上
在.github/workflows/文件夹下新增synchronize.yml文件,配置如下:
[username]替换成你的用户名
1 | # workflow name |
配置synchronize的公钥、私钥和token
在本地电脑上生成
synchronize密匙对这里的
[your_email@example.com]改成你的邮箱1
2# 进入到本地电脑的~\.ssh文件夹下再进行操作
ssh-keygen -t rsa -C "[your_email@example.com]" -f synchronize然后一直回车,新建一个密钥。一般来说在你创建的时候命令行会提示你密钥文件的路径,
windows电脑一般是C:\Users\Administrator\.ssh\。复制synchronize.pub文件中的内容备用。新建一个
gitee上的hexo-blog远程私有仓库在
gitee上的设置=>SSH公钥=>添加公钥上添加公钥如下:标题 公钥 HEXO_DEPLOY_KEY本地的主机: ~\.ssh\hexo-blog.pub,(第一部分操作生成的密匙)GITEE_PUBLIC_KEY本地的主机: ~\.ssh\synchronize.pub,(用于将github仓库同步到gitee上)在
gitee上的设置=>私人令牌=>生成新令牌如下:私人令牌描述 请选择将要生成的私人令牌所拥有的权限 github同步到gitee全选 将生成的
token信息保存下来,用于后续的配置回到
github上。我们在hexo-blog仓库的Settings=>Secrets=>Actions上点击New repository secret新增两个secret用于同步到gitee上。Name Secret GITEE_PRIVATE_KEY本地的主机: ~\.ssh\synchronize,(用于将github仓库同步到gitee`上)GITEE_TOKEN上一步在 gitee上生成的私人令牌token
将本地hexo-blog提交到github的hexo-blog上
- 使用
git add .和git commit命令提交本地仓库的更改 - 使用
git push提交到github上 - 观察
github上的action运行情况 - 观察
gitee上的代码同步情况 - 观察
www.xxx.xxx、blog.xxx.xxx、xxx.xxx、[username].github.io、[username].gitee.io等网站部署情况
至此hexo-blog的自动化部署流程已经完成。