本站之前的部署方案是在本地写好文章并生成静态文件后再 Push 到Github 并通过 WINscp 手动上传到个人云服务器,最后再把博客源代码备份到 Github 私有仓库。
每次更新文章都老费劲了,需要操作的步骤有点过于繁琐!
现利用 Github Action 持续集成并部署 Hexo 博客。
大致思路:
- 源码文件 Push 到 GitHub
Blog
私有仓库master
分支 - Github Action 在
Blog
私有仓库master
分支更新后,自动构建生成站点文件 - Github Action 将生成的静态文件推送到
username.github.io
仓库master
分支 - 云服务器从 GitHub Page
master
分支拉取更新
也就是说,整个部署过程只需要将写好源码文件 Push 到 GitHub 上存放源码仓库的 master 分支,后面的操作交给 Github Action 处理即可。
部署到Github
Github配置密钥
在博客根目录下生成部署密钥
ssh-keygen -f deploy-key |
根目录下会有私钥 deploy-key
和公钥 deploy-key.pub
两个文件,注意排除俩文件不要push到GitHub去。
复制私钥 deploy-key
的内容,在博客源码仓库的 Settings → Secrets → New repository secret 添加。
公钥 deploy-key.pub
的内容,在 username.github.io
仓库 Settings → Secrets → New repository secret 添加。
若以上生成的公钥、私钥Github自动部署失败,可直接复制您电脑上的公钥、私钥配置。
Github配置Action
在存放 Hexo 博客源码的私有仓库开启 Action
,并创建 .github/workflows/action.yml
配置文件,其中 action.yml
名字随意取。
如下是一个简单且可用的配置文件,只需修改 Git 的用户名和邮箱即可。
# workflow name |
action.yml
文件配置好并保存后会自动执行一次,配置无误后若自动部署成功则会出现绿色的√。
打开你的 username.github.io
仓库即可看到已经部署成功。
部署到云服务器
云服务器安装Git
在云服务器上执行命令安装Git
yum install git |
云服务器生成密钥
依次执行命令
git config --global user.name "用户名" |
验证是否配置成功
ssh -T git@github.com |
云服务器部署密钥
将生成的私钥复制到username.github.io
仓库的 Settings → Secrets → New repository secret 并添加。
而生成的公钥需要复制到 Github 的设置中的 SSH and GPG keys 的 New SSH key 处添加。
Pull到云服务器
在云服务器上执行命令初始化 Git 仓库并拉取文件。
#To站点目录 |
在云服务器宝塔面板上开启一个定时任务即可,shell脚本为
cd /www/wwwroot/blog |
这样云服务器就能定时更新静态站内容,而不用手动操作了。
结束语
当完成以上配置以后,更新文章只需修改源代码后,执行命令三连
git add . |
PS: 默认已经初始化过本地仓库
剩下的生成静态文件、部署到静态文件仓库和云服务器仓库的任务就交给 Github Action 和 Shell 脚本即可。
双手瞬间轻松了很多啊👌🤣
参考文章
本文链接: https://senorui.top/posts/17d1.html
版权声明: 本站所有文章除特别声明外,均采用【CC BY-NC-ND 4.0】国际许可协议,若转载请注明出处!