准备工作
在开始第三部分前配置前,你需要有如下准备:
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_KEY
Authentication 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
的自动化部署流程已经完成。