github 私有库 创建pages的 最简单的保姆级教程
本站 使用的mdbook ,其他 hexo 或者gitbook 都一样 一样
2022-10-22 最终放弃简单易用的mdbook 换到 golang开发的 hugo上,
关于 hugo私有库存 部署脚本 请查看 在github上快速部署一个基于hugo的个人博客
首先第一步 是 创建一个 私有库,用来存放md文件 dev.leiyanhui.com-src
分支也只需要一个main
再创建一个公开库 dev.leiyanhui.com-page
用来存放 生成后的html
这两个库 可以在不同的帐号下,后面你自己替换这两个库名称,还有邮箱和用户名
原理
在 dev.leiyanhui.com-page
打开github page 服务
在 dev.leiyanhui.com-src
用 github actions 自动生成html并推送到 dev.leiyanhui.com-src
首先你可能需要先搞定自动生产
先搞定 md到html的静态生成,无论是mdbook 还是 hexo,文章末尾 有提供 mdbook的 自动脚本 mdbook-公开库自己部署到自己.yml
放到 dev.leiyanhui.com-src/.github/workflows/
文件后缀为yml 文件名无所谓
本文默认 你已经会弄这个,如果不明白查看这个文章
然后准备自动推送相关的
经过我测试https 推送 目前是存在问题的,还是建议 使用ssh推送
在本机 先弄一套密钥
ssh-keygen -t rsa -C "joyanhui@qq.com"
cd ~/.ssh
cat id_rsa #这是私钥 记好
cat id_rsa.pub #这是公钥 记好
win环境下自己搞定
再公开库 添加公钥
打开 公开库 dev.leiyanhui.com-page
setting Deploy keys
链接: https://github.com/joyanhui/dev.leiyanhui.com-page/settings/keys
添加一个 Add new ,把前面 公钥 id_rsa.pub 的内容粘贴进来 名称随意
在私有库 添加一个环境变量 存 私钥
打开 私有库 dev.leiyanhui.com-page
setting secrets actions
链接: https://github.com/joyanhui/dev.leiyanhui.com-src/settings/secrets/actions
添加一个 New repository secret 大概意思 就是 加密变量
名称随意,我这里使用 名称 FOR_PAGE_SSHKEY
内容填写 私钥id_rsa的内容
修改私有库的自动部署actions workflows文件
编辑 私有库 mdbook-共有库自己部署到自己.yml
文件
在 env:添加 一个环境变量
FOR_PAGE_SSHKEY: ${{ secrets.FOR_PAGE_SSHKEY }}
在 git commit 后面添加几行命令 自动部署私钥
mkdir -p ~/.ssh/
echo "$FOR_PAGE_SSHKEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
在 git push origin 前面添加一个远程git
git remote rm origin
git remote add origin git@github.com:joyanhui/dev.leiyanhui.com-page.git
这就可以了
在合适的位置 还要 添加一个 删除 rm -rf .github
不然 公开库 也自动执行这个yml了,然后肯定会失败
完整的配置文件 参考文末 mdbook-私有库自动部署到公开库pages.yml
进阶
- 提升国内网访问
- 网站访问
我用的dnspods 境外解析到 xxx.github.com 境内解析到 国内cdn cdn再指向xxx.github.com - src文件在线编辑和上传
- gitcode 也有 DevOps 可以用
- gitee 自动推送到 github gitee默认提供 同步功能,目前还是免费的,但是gitee的md编辑器有点难用!
- coding 自动推送到 github coding 有集成服务Jenkins 并且有香港和美国服务器让你运行集成服务代码,每个提供免费300分钟的执行时间,出发你一天24小时都在写都在提交 不然其实也够用。
- 网站访问
hugo的自动部署
我在用的 github/workflows actions 脚本
dev.leiyanhui.com-src/.github/workflows/mdbook-公开库自己部署到自己.yml
|
|
dev.leiyanhui.com-src/.github/workflows/mdbook-私有库自动部署到公开库pages.yml
|
|