GitHubActions持续集成语雀Hexo博客
快速搭建语雀 Hexo 博客,Github Actions 快速集成发布。参考文档: yuque-hexo
一、原理介绍
全流程自动化,一步步的触发
二、准备工作
主要就是 github 账号以及 token,阿里云 OSS 图床及云函数配置(我使用的阿里云,就只做这个例子,腾讯云的配置差别不是很大)
github 账号不名不要太奇怪,尽量不要有一些特殊字符
Github Token
- settings/developer settings/token (class)
- 选择 workflow,会包含 repo 权限
- 选择 write:packages(Github 图床会需要此权限)
- 生成的 token 记录下来,取名为: ${GITHUB_TOKEN}
Git 源码 Repo 及静态资源 Repo
- 拿到自己的 github 用户名(最好不要有空格以及特殊字符),记录为${GITHUB_NAME}
- 创建两个仓库,repo 名分别为${GITHUB_NAME}及${GITHUB_NAME}.github.io
- 都只需要单分支,修改默认分支名字为 master
吐槽一下,因为西方的政治正确,现在技术用语都不再使用 master/slave 了,github 默认分支名也改为了 main
阿里云 OSS 图床
之前使用的是阿里云图床,后来换了 github 图床,github 图床配置更简单
- 进入阿里云 OSS 控制台,创建博客需要的 bucket
- 进入RAM 访问控制,创建子 RAM 账户,一定要记录好
- 提前记录好 AccessKey 及 AccessSecret,否则之后取不到 Secret!
- 给 RAM 账户添加 OSS 权限(AliyunOSSFullAccess\AliyunOSSReadOnlyAccess)
Github 图床
- 创建图片存储库
- github 做图床,一般会使用一些加速工具,配置如下
必须要配置 host,以及设置并发为 1
此时 bucket 为图片库名,prefixkey 为文件夹名,不填 region
SECRET_ID=Github 用户名,SECRET_KEY=Github Token(需要 write:packages 权限)
1 |
|
阿里云函数计算 FC
- 进入函数计算控制台
- 创建服务
- 创建函数,使用 Python2.7 环境
- 函数配置中的请求处理程序为:index.handler(对应 index.py 中的 handler 函数)
- 在 index.py 中编辑,修改 url 中的仓库名为自己源码仓库名
- 修改 Authorization 中的 token 为之前创建的 github token(空格不能丢)
1 |
|
- 创建 web 触发云函数的地址,记录好地址
使用 HTTP 触发器
请求方法全选
不需要认证
语雀仓库名及 Token
- 创建一个公开访问的知识库
- 拿到自己的用户名和知识库名
- 知识库中内容不要为空,可以提前加入测试文档!
- 进入语雀 Token 设置,创建 token,权限设置为全可读,记录为${YUQUE_TOKEN}
- 配置语雀知识库 WebHook
选择其他渠道
输入上一步云函数的 http 触发地址即可
本地 SSH 及 Git 配置
1 |
|
- 将公钥上传到Github SSH 设置界面
三、正式配置
本地初始化源码仓库
1 |
|
- 注意 sources/CNAME 文件,用于域名映射的,可以先删掉此文件
更新 Readme
用户名同名仓库的 readme 会作为 github 主页展示资料,因此需要修改为自己的
及时修改对应的 Github stats,通过开放 api 可查看最近提交状态
Github Actions Secret 配置
- 进入入源码库 Settings/Actions 界面界面
- 添加SECRET_ID和SECRET_KEY,内容为阿里云 OSS RAM 子账户配置的 ID 和 KEY
- 添加SSH_PRIVATE_KEY,内容为本地 SSH 私钥~/.ssh/id_rsa
- 添加YUQUE_TOKEN,内容为之前获取的语雀 Token
修改配置
- 修改package.json
修改 login 和 repo 为你的语雀用户名和知识库名
修改 imgCdn 中的 bucket 为你的 oss bucket 名,region 为区域名,prefix 为 bucket 中图片主文件夹名字
如果是七牛云或者腾讯 COS,可阅读语雀-hexo的文档进行对应修改
1 |
|
- 修改 github actions 配置,文件位置为.github/workflows/main.yml
修改 external_repository 为自己的静态资源仓库名即可
1 |
|
测试使用
- 在语雀中新建一篇文章并保存,勾选文档有较大更新
四、其他配置
评论配置
- 在源码 repo–>settings–>discussions,打开,安装 giscus 软件
- 在giscus 官网中按照提示填写配置,会生成对应的配置,复制到 fluid yml 中配置即可
GitHubActions持续集成语雀Hexo博客
https://polarisink.github.io/20221019/yuque/GitHubActions持续集成语雀Hexo博客/