本博客采用github page实现部署,但由于github的性质无法有效的进行分离快速部署。
必须博客展示页,必须以username.github.io结尾,这样感觉不是很方便
部署前基本流程为,部署github page -> 手动上传源码到对应仓库。
那么我们是否可以直接push到私有源码仓库,出发二段部署从实现自动的博客部署,此时我们只需要关心与维护自己的博客源码,再也不用刻意的关注部署了
说干就干
前置条件
ssh部署
1 | ssh-keygen -t rsa -C "your email" |
若配置了全局的git email 可使用
ssh-keygen -t rsa -C "$(git config user.email)" -f gh-pages -N ""
完成后将在本地$HOME/.ssh
中生成私钥id_rsa
,与公钥,id_rsa.pub
,将公钥上传到github上,进入https://github.com/settings/keys ,登陆自己的github账号。如下所示
New SSH Key
其中title为自定义,key为id_rsa.pub
中内容。完成后点击Add SSH key即可
建立私有博客源码仓库
github上创建一个私有仓库即可,详细流程不在过多赘述
创建Actions
配置Actions secrets
Settings -> Deploy keys -> New repository secrets,如下所示
将上面生成的id_rsa,复制到私钥中。
将workflow增加到源码文件中,拉取到本地。
deploy.yml如下
1 | # This is a basic workflow to help you get started with Actions |
总结
以上便是github page 源码保护分析详细过程,其基本原理就是将ssh部署的工作交给自动构建的Actions。